diff --git a/kubernetes/.openapi-generator/COMMIT b/kubernetes/.openapi-generator/COMMIT index b8fe013..7191bd3 100644 --- a/kubernetes/.openapi-generator/COMMIT +++ b/kubernetes/.openapi-generator/COMMIT @@ -1,2 +1,2 @@ Requested Commit/Tag : master -Actual Commit : 90bd1f361b11ddff72cc541d99efafed5307c8c5 +Actual Commit : 57dceae4ad22a5ff76fd5b2e1fc7e801f6f4eaaf diff --git a/kubernetes/.openapi-generator/FILES b/kubernetes/.openapi-generator/FILES index 245c44a..e8795f9 100644 --- a/kubernetes/.openapi-generator/FILES +++ b/kubernetes/.openapi-generator/FILES @@ -115,6 +115,10 @@ api/StorageV1API.c api/StorageV1API.h api/StorageV1alpha1API.c api/StorageV1alpha1API.h +api/StoragemigrationAPI.c +api/StoragemigrationAPI.h +api/StoragemigrationV1alpha1API.c +api/StoragemigrationV1alpha1API.h api/VersionAPI.c api/VersionAPI.h api/WellKnownAPI.c @@ -176,6 +180,8 @@ docs/SchedulingV1API.md docs/StorageAPI.md docs/StorageV1API.md docs/StorageV1alpha1API.md +docs/StoragemigrationAPI.md +docs/StoragemigrationV1alpha1API.md docs/VersionAPI.md docs/WellKnownAPI.md docs/admissionregistration_v1_service_reference.md @@ -207,7 +213,9 @@ docs/v1_api_service_list.md docs/v1_api_service_spec.md docs/v1_api_service_status.md docs/v1_api_versions.md +docs/v1_app_armor_profile.md docs/v1_attached_volume.md +docs/v1_audit_annotation.md docs/v1_aws_elastic_block_store_volume_source.md docs/v1_azure_disk_volume_source.md docs/v1_azure_file_persistent_volume_source.md @@ -317,6 +325,7 @@ docs/v1_event_source.md docs/v1_eviction.md docs/v1_exec_action.md docs/v1_exempt_priority_level_configuration.md +docs/v1_expression_warning.md docs/v1_external_documentation.md docs/v1_fc_volume_source.md docs/v1_flex_persistent_volume_source.md @@ -394,10 +403,12 @@ docs/v1_local_subject_access_review.md docs/v1_local_volume_source.md docs/v1_managed_fields_entry.md docs/v1_match_condition.md +docs/v1_match_resources.md docs/v1_modify_volume_status.md docs/v1_mutating_webhook.md docs/v1_mutating_webhook_configuration.md docs/v1_mutating_webhook_configuration_list.md +docs/v1_named_rule_with_operations.md docs/v1_namespace.md docs/v1_namespace_condition.md docs/v1_namespace_list.md @@ -419,6 +430,8 @@ docs/v1_node_config_source.md docs/v1_node_config_status.md docs/v1_node_daemon_endpoints.md docs/v1_node_list.md +docs/v1_node_runtime_handler.md +docs/v1_node_runtime_handler_features.md docs/v1_node_selector.md docs/v1_node_selector_requirement.md docs/v1_node_selector_term.md @@ -433,6 +446,8 @@ docs/v1_object_meta.md docs/v1_object_reference.md docs/v1_overhead.md docs/v1_owner_reference.md +docs/v1_param_kind.md +docs/v1_param_ref.md docs/v1_persistent_volume.md docs/v1_persistent_volume_claim.md docs/v1_persistent_volume_claim_condition.md @@ -542,6 +557,7 @@ docs/v1_secret_projection.md docs/v1_secret_reference.md docs/v1_secret_volume_source.md docs/v1_security_context.md +docs/v1_selectable_field.md docs/v1_self_subject_access_review.md docs/v1_self_subject_access_review_spec.md docs/v1_self_subject_review.md @@ -580,6 +596,8 @@ docs/v1_subject_access_review.md docs/v1_subject_access_review_spec.md docs/v1_subject_access_review_status.md docs/v1_subject_rules_review_status.md +docs/v1_success_policy.md +docs/v1_success_policy_rule.md docs/v1_sysctl.md docs/v1_taint.md docs/v1_tcp_socket_action.md @@ -592,15 +610,25 @@ docs/v1_toleration.md docs/v1_topology_selector_label_requirement.md docs/v1_topology_selector_term.md docs/v1_topology_spread_constraint.md +docs/v1_type_checking.md docs/v1_typed_local_object_reference.md docs/v1_typed_object_reference.md docs/v1_uncounted_terminated_pods.md docs/v1_user_info.md docs/v1_user_subject.md +docs/v1_validating_admission_policy.md +docs/v1_validating_admission_policy_binding.md +docs/v1_validating_admission_policy_binding_list.md +docs/v1_validating_admission_policy_binding_spec.md +docs/v1_validating_admission_policy_list.md +docs/v1_validating_admission_policy_spec.md +docs/v1_validating_admission_policy_status.md docs/v1_validating_webhook.md docs/v1_validating_webhook_configuration.md docs/v1_validating_webhook_configuration_list.md +docs/v1_validation.md docs/v1_validation_rule.md +docs/v1_variable.md docs/v1_volume.md docs/v1_volume_attachment.md docs/v1_volume_attachment_list.md @@ -610,6 +638,7 @@ docs/v1_volume_attachment_status.md docs/v1_volume_device.md docs/v1_volume_error.md docs/v1_volume_mount.md +docs/v1_volume_mount_status.md docs/v1_volume_node_affinity.md docs/v1_volume_node_resources.md docs/v1_volume_projection.md @@ -624,11 +653,13 @@ docs/v1alpha1_cluster_trust_bundle.md docs/v1alpha1_cluster_trust_bundle_list.md docs/v1alpha1_cluster_trust_bundle_spec.md docs/v1alpha1_expression_warning.md +docs/v1alpha1_group_version_resource.md docs/v1alpha1_ip_address.md docs/v1alpha1_ip_address_list.md docs/v1alpha1_ip_address_spec.md docs/v1alpha1_match_condition.md docs/v1alpha1_match_resources.md +docs/v1alpha1_migration_condition.md docs/v1alpha1_named_rule_with_operations.md docs/v1alpha1_param_kind.md docs/v1alpha1_param_ref.md @@ -643,6 +674,10 @@ docs/v1alpha1_service_cidr_status.md docs/v1alpha1_storage_version.md docs/v1alpha1_storage_version_condition.md docs/v1alpha1_storage_version_list.md +docs/v1alpha1_storage_version_migration.md +docs/v1alpha1_storage_version_migration_list.md +docs/v1alpha1_storage_version_migration_spec.md +docs/v1alpha1_storage_version_migration_status.md docs/v1alpha1_storage_version_status.md docs/v1alpha1_type_checking.md docs/v1alpha1_validating_admission_policy.md @@ -657,6 +692,16 @@ docs/v1alpha1_variable.md docs/v1alpha1_volume_attributes_class.md docs/v1alpha1_volume_attributes_class_list.md docs/v1alpha2_allocation_result.md +docs/v1alpha2_driver_allocation_result.md +docs/v1alpha2_driver_requests.md +docs/v1alpha2_named_resources_allocation_result.md +docs/v1alpha2_named_resources_attribute.md +docs/v1alpha2_named_resources_filter.md +docs/v1alpha2_named_resources_instance.md +docs/v1alpha2_named_resources_int_slice.md +docs/v1alpha2_named_resources_request.md +docs/v1alpha2_named_resources_resources.md +docs/v1alpha2_named_resources_string_slice.md docs/v1alpha2_pod_scheduling_context.md docs/v1alpha2_pod_scheduling_context_list.md docs/v1alpha2_pod_scheduling_context_spec.md @@ -664,6 +709,8 @@ docs/v1alpha2_pod_scheduling_context_status.md docs/v1alpha2_resource_claim.md docs/v1alpha2_resource_claim_consumer_reference.md docs/v1alpha2_resource_claim_list.md +docs/v1alpha2_resource_claim_parameters.md +docs/v1alpha2_resource_claim_parameters_list.md docs/v1alpha2_resource_claim_parameters_reference.md docs/v1alpha2_resource_claim_scheduling_status.md docs/v1alpha2_resource_claim_spec.md @@ -673,8 +720,16 @@ docs/v1alpha2_resource_claim_template_list.md docs/v1alpha2_resource_claim_template_spec.md docs/v1alpha2_resource_class.md docs/v1alpha2_resource_class_list.md +docs/v1alpha2_resource_class_parameters.md +docs/v1alpha2_resource_class_parameters_list.md docs/v1alpha2_resource_class_parameters_reference.md +docs/v1alpha2_resource_filter.md docs/v1alpha2_resource_handle.md +docs/v1alpha2_resource_request.md +docs/v1alpha2_resource_slice.md +docs/v1alpha2_resource_slice_list.md +docs/v1alpha2_structured_resource_handle.md +docs/v1alpha2_vendor_parameters.md docs/v1beta1_audit_annotation.md docs/v1beta1_expression_warning.md docs/v1beta1_match_condition.md @@ -810,8 +865,12 @@ model/v1_api_service_status.c model/v1_api_service_status.h model/v1_api_versions.c model/v1_api_versions.h +model/v1_app_armor_profile.c +model/v1_app_armor_profile.h model/v1_attached_volume.c model/v1_attached_volume.h +model/v1_audit_annotation.c +model/v1_audit_annotation.h model/v1_aws_elastic_block_store_volume_source.c model/v1_aws_elastic_block_store_volume_source.h model/v1_azure_disk_volume_source.c @@ -1030,6 +1089,8 @@ model/v1_exec_action.c model/v1_exec_action.h model/v1_exempt_priority_level_configuration.c model/v1_exempt_priority_level_configuration.h +model/v1_expression_warning.c +model/v1_expression_warning.h model/v1_external_documentation.c model/v1_external_documentation.h model/v1_fc_volume_source.c @@ -1184,6 +1245,8 @@ model/v1_managed_fields_entry.c model/v1_managed_fields_entry.h model/v1_match_condition.c model/v1_match_condition.h +model/v1_match_resources.c +model/v1_match_resources.h model/v1_modify_volume_status.c model/v1_modify_volume_status.h model/v1_mutating_webhook.c @@ -1192,6 +1255,8 @@ model/v1_mutating_webhook_configuration.c model/v1_mutating_webhook_configuration.h model/v1_mutating_webhook_configuration_list.c model/v1_mutating_webhook_configuration_list.h +model/v1_named_rule_with_operations.c +model/v1_named_rule_with_operations.h model/v1_namespace.c model/v1_namespace.h model/v1_namespace_condition.c @@ -1234,6 +1299,10 @@ model/v1_node_daemon_endpoints.c model/v1_node_daemon_endpoints.h model/v1_node_list.c model/v1_node_list.h +model/v1_node_runtime_handler.c +model/v1_node_runtime_handler.h +model/v1_node_runtime_handler_features.c +model/v1_node_runtime_handler_features.h model/v1_node_selector.c model/v1_node_selector.h model/v1_node_selector_requirement.c @@ -1262,6 +1331,10 @@ model/v1_overhead.c model/v1_overhead.h model/v1_owner_reference.c model/v1_owner_reference.h +model/v1_param_kind.c +model/v1_param_kind.h +model/v1_param_ref.c +model/v1_param_ref.h model/v1_persistent_volume.c model/v1_persistent_volume.h model/v1_persistent_volume_claim.c @@ -1480,6 +1553,8 @@ model/v1_secret_volume_source.c model/v1_secret_volume_source.h model/v1_security_context.c model/v1_security_context.h +model/v1_selectable_field.c +model/v1_selectable_field.h model/v1_self_subject_access_review.c model/v1_self_subject_access_review.h model/v1_self_subject_access_review_spec.c @@ -1556,6 +1631,10 @@ model/v1_subject_access_review_status.c model/v1_subject_access_review_status.h model/v1_subject_rules_review_status.c model/v1_subject_rules_review_status.h +model/v1_success_policy.c +model/v1_success_policy.h +model/v1_success_policy_rule.c +model/v1_success_policy_rule.h model/v1_sysctl.c model/v1_sysctl.h model/v1_taint.c @@ -1580,6 +1659,8 @@ model/v1_topology_selector_term.c model/v1_topology_selector_term.h model/v1_topology_spread_constraint.c model/v1_topology_spread_constraint.h +model/v1_type_checking.c +model/v1_type_checking.h model/v1_typed_local_object_reference.c model/v1_typed_local_object_reference.h model/v1_typed_object_reference.c @@ -1590,14 +1671,32 @@ model/v1_user_info.c model/v1_user_info.h model/v1_user_subject.c model/v1_user_subject.h +model/v1_validating_admission_policy.c +model/v1_validating_admission_policy.h +model/v1_validating_admission_policy_binding.c +model/v1_validating_admission_policy_binding.h +model/v1_validating_admission_policy_binding_list.c +model/v1_validating_admission_policy_binding_list.h +model/v1_validating_admission_policy_binding_spec.c +model/v1_validating_admission_policy_binding_spec.h +model/v1_validating_admission_policy_list.c +model/v1_validating_admission_policy_list.h +model/v1_validating_admission_policy_spec.c +model/v1_validating_admission_policy_spec.h +model/v1_validating_admission_policy_status.c +model/v1_validating_admission_policy_status.h model/v1_validating_webhook.c model/v1_validating_webhook.h model/v1_validating_webhook_configuration.c model/v1_validating_webhook_configuration.h model/v1_validating_webhook_configuration_list.c model/v1_validating_webhook_configuration_list.h +model/v1_validation.c +model/v1_validation.h model/v1_validation_rule.c model/v1_validation_rule.h +model/v1_variable.c +model/v1_variable.h model/v1_volume.c model/v1_volume.h model/v1_volume_attachment.c @@ -1616,6 +1715,8 @@ model/v1_volume_error.c model/v1_volume_error.h model/v1_volume_mount.c model/v1_volume_mount.h +model/v1_volume_mount_status.c +model/v1_volume_mount_status.h model/v1_volume_node_affinity.c model/v1_volume_node_affinity.h model/v1_volume_node_resources.c @@ -1644,6 +1745,8 @@ model/v1alpha1_cluster_trust_bundle_spec.c model/v1alpha1_cluster_trust_bundle_spec.h model/v1alpha1_expression_warning.c model/v1alpha1_expression_warning.h +model/v1alpha1_group_version_resource.c +model/v1alpha1_group_version_resource.h model/v1alpha1_ip_address.c model/v1alpha1_ip_address.h model/v1alpha1_ip_address_list.c @@ -1654,6 +1757,8 @@ model/v1alpha1_match_condition.c model/v1alpha1_match_condition.h model/v1alpha1_match_resources.c model/v1alpha1_match_resources.h +model/v1alpha1_migration_condition.c +model/v1alpha1_migration_condition.h model/v1alpha1_named_rule_with_operations.c model/v1alpha1_named_rule_with_operations.h model/v1alpha1_param_kind.c @@ -1682,6 +1787,14 @@ model/v1alpha1_storage_version_condition.c model/v1alpha1_storage_version_condition.h model/v1alpha1_storage_version_list.c model/v1alpha1_storage_version_list.h +model/v1alpha1_storage_version_migration.c +model/v1alpha1_storage_version_migration.h +model/v1alpha1_storage_version_migration_list.c +model/v1alpha1_storage_version_migration_list.h +model/v1alpha1_storage_version_migration_spec.c +model/v1alpha1_storage_version_migration_spec.h +model/v1alpha1_storage_version_migration_status.c +model/v1alpha1_storage_version_migration_status.h model/v1alpha1_storage_version_status.c model/v1alpha1_storage_version_status.h model/v1alpha1_type_checking.c @@ -1710,6 +1823,26 @@ model/v1alpha1_volume_attributes_class_list.c model/v1alpha1_volume_attributes_class_list.h model/v1alpha2_allocation_result.c model/v1alpha2_allocation_result.h +model/v1alpha2_driver_allocation_result.c +model/v1alpha2_driver_allocation_result.h +model/v1alpha2_driver_requests.c +model/v1alpha2_driver_requests.h +model/v1alpha2_named_resources_allocation_result.c +model/v1alpha2_named_resources_allocation_result.h +model/v1alpha2_named_resources_attribute.c +model/v1alpha2_named_resources_attribute.h +model/v1alpha2_named_resources_filter.c +model/v1alpha2_named_resources_filter.h +model/v1alpha2_named_resources_instance.c +model/v1alpha2_named_resources_instance.h +model/v1alpha2_named_resources_int_slice.c +model/v1alpha2_named_resources_int_slice.h +model/v1alpha2_named_resources_request.c +model/v1alpha2_named_resources_request.h +model/v1alpha2_named_resources_resources.c +model/v1alpha2_named_resources_resources.h +model/v1alpha2_named_resources_string_slice.c +model/v1alpha2_named_resources_string_slice.h model/v1alpha2_pod_scheduling_context.c model/v1alpha2_pod_scheduling_context.h model/v1alpha2_pod_scheduling_context_list.c @@ -1724,6 +1857,10 @@ model/v1alpha2_resource_claim_consumer_reference.c model/v1alpha2_resource_claim_consumer_reference.h model/v1alpha2_resource_claim_list.c model/v1alpha2_resource_claim_list.h +model/v1alpha2_resource_claim_parameters.c +model/v1alpha2_resource_claim_parameters.h +model/v1alpha2_resource_claim_parameters_list.c +model/v1alpha2_resource_claim_parameters_list.h model/v1alpha2_resource_claim_parameters_reference.c model/v1alpha2_resource_claim_parameters_reference.h model/v1alpha2_resource_claim_scheduling_status.c @@ -1742,10 +1879,26 @@ model/v1alpha2_resource_class.c model/v1alpha2_resource_class.h model/v1alpha2_resource_class_list.c model/v1alpha2_resource_class_list.h +model/v1alpha2_resource_class_parameters.c +model/v1alpha2_resource_class_parameters.h +model/v1alpha2_resource_class_parameters_list.c +model/v1alpha2_resource_class_parameters_list.h model/v1alpha2_resource_class_parameters_reference.c model/v1alpha2_resource_class_parameters_reference.h +model/v1alpha2_resource_filter.c +model/v1alpha2_resource_filter.h model/v1alpha2_resource_handle.c model/v1alpha2_resource_handle.h +model/v1alpha2_resource_request.c +model/v1alpha2_resource_request.h +model/v1alpha2_resource_slice.c +model/v1alpha2_resource_slice.h +model/v1alpha2_resource_slice_list.c +model/v1alpha2_resource_slice_list.h +model/v1alpha2_structured_resource_handle.c +model/v1alpha2_structured_resource_handle.h +model/v1alpha2_vendor_parameters.c +model/v1alpha2_vendor_parameters.h model/v1beta1_audit_annotation.c model/v1beta1_audit_annotation.h model/v1beta1_expression_warning.c @@ -1914,7 +2067,9 @@ unit-test/test_v1_api_service_list.c unit-test/test_v1_api_service_spec.c unit-test/test_v1_api_service_status.c unit-test/test_v1_api_versions.c +unit-test/test_v1_app_armor_profile.c unit-test/test_v1_attached_volume.c +unit-test/test_v1_audit_annotation.c unit-test/test_v1_aws_elastic_block_store_volume_source.c unit-test/test_v1_azure_disk_volume_source.c unit-test/test_v1_azure_file_persistent_volume_source.c @@ -2024,6 +2179,7 @@ unit-test/test_v1_event_source.c unit-test/test_v1_eviction.c unit-test/test_v1_exec_action.c unit-test/test_v1_exempt_priority_level_configuration.c +unit-test/test_v1_expression_warning.c unit-test/test_v1_external_documentation.c unit-test/test_v1_fc_volume_source.c unit-test/test_v1_flex_persistent_volume_source.c @@ -2101,10 +2257,12 @@ unit-test/test_v1_local_subject_access_review.c unit-test/test_v1_local_volume_source.c unit-test/test_v1_managed_fields_entry.c unit-test/test_v1_match_condition.c +unit-test/test_v1_match_resources.c unit-test/test_v1_modify_volume_status.c unit-test/test_v1_mutating_webhook.c unit-test/test_v1_mutating_webhook_configuration.c unit-test/test_v1_mutating_webhook_configuration_list.c +unit-test/test_v1_named_rule_with_operations.c unit-test/test_v1_namespace.c unit-test/test_v1_namespace_condition.c unit-test/test_v1_namespace_list.c @@ -2126,6 +2284,8 @@ unit-test/test_v1_node_config_source.c unit-test/test_v1_node_config_status.c unit-test/test_v1_node_daemon_endpoints.c unit-test/test_v1_node_list.c +unit-test/test_v1_node_runtime_handler.c +unit-test/test_v1_node_runtime_handler_features.c unit-test/test_v1_node_selector.c unit-test/test_v1_node_selector_requirement.c unit-test/test_v1_node_selector_term.c @@ -2140,6 +2300,8 @@ unit-test/test_v1_object_meta.c unit-test/test_v1_object_reference.c unit-test/test_v1_overhead.c unit-test/test_v1_owner_reference.c +unit-test/test_v1_param_kind.c +unit-test/test_v1_param_ref.c unit-test/test_v1_persistent_volume.c unit-test/test_v1_persistent_volume_claim.c unit-test/test_v1_persistent_volume_claim_condition.c @@ -2249,6 +2411,7 @@ unit-test/test_v1_secret_projection.c unit-test/test_v1_secret_reference.c unit-test/test_v1_secret_volume_source.c unit-test/test_v1_security_context.c +unit-test/test_v1_selectable_field.c unit-test/test_v1_self_subject_access_review.c unit-test/test_v1_self_subject_access_review_spec.c unit-test/test_v1_self_subject_review.c @@ -2287,6 +2450,8 @@ unit-test/test_v1_subject_access_review.c unit-test/test_v1_subject_access_review_spec.c unit-test/test_v1_subject_access_review_status.c unit-test/test_v1_subject_rules_review_status.c +unit-test/test_v1_success_policy.c +unit-test/test_v1_success_policy_rule.c unit-test/test_v1_sysctl.c unit-test/test_v1_taint.c unit-test/test_v1_tcp_socket_action.c @@ -2299,15 +2464,25 @@ unit-test/test_v1_toleration.c unit-test/test_v1_topology_selector_label_requirement.c unit-test/test_v1_topology_selector_term.c unit-test/test_v1_topology_spread_constraint.c +unit-test/test_v1_type_checking.c unit-test/test_v1_typed_local_object_reference.c unit-test/test_v1_typed_object_reference.c unit-test/test_v1_uncounted_terminated_pods.c unit-test/test_v1_user_info.c unit-test/test_v1_user_subject.c +unit-test/test_v1_validating_admission_policy.c +unit-test/test_v1_validating_admission_policy_binding.c +unit-test/test_v1_validating_admission_policy_binding_list.c +unit-test/test_v1_validating_admission_policy_binding_spec.c +unit-test/test_v1_validating_admission_policy_list.c +unit-test/test_v1_validating_admission_policy_spec.c +unit-test/test_v1_validating_admission_policy_status.c unit-test/test_v1_validating_webhook.c unit-test/test_v1_validating_webhook_configuration.c unit-test/test_v1_validating_webhook_configuration_list.c +unit-test/test_v1_validation.c unit-test/test_v1_validation_rule.c +unit-test/test_v1_variable.c unit-test/test_v1_volume.c unit-test/test_v1_volume_attachment.c unit-test/test_v1_volume_attachment_list.c @@ -2317,6 +2492,7 @@ unit-test/test_v1_volume_attachment_status.c unit-test/test_v1_volume_device.c unit-test/test_v1_volume_error.c unit-test/test_v1_volume_mount.c +unit-test/test_v1_volume_mount_status.c unit-test/test_v1_volume_node_affinity.c unit-test/test_v1_volume_node_resources.c unit-test/test_v1_volume_projection.c @@ -2331,11 +2507,13 @@ unit-test/test_v1alpha1_cluster_trust_bundle.c unit-test/test_v1alpha1_cluster_trust_bundle_list.c unit-test/test_v1alpha1_cluster_trust_bundle_spec.c unit-test/test_v1alpha1_expression_warning.c +unit-test/test_v1alpha1_group_version_resource.c unit-test/test_v1alpha1_ip_address.c unit-test/test_v1alpha1_ip_address_list.c unit-test/test_v1alpha1_ip_address_spec.c unit-test/test_v1alpha1_match_condition.c unit-test/test_v1alpha1_match_resources.c +unit-test/test_v1alpha1_migration_condition.c unit-test/test_v1alpha1_named_rule_with_operations.c unit-test/test_v1alpha1_param_kind.c unit-test/test_v1alpha1_param_ref.c @@ -2350,6 +2528,10 @@ unit-test/test_v1alpha1_service_cidr_status.c unit-test/test_v1alpha1_storage_version.c unit-test/test_v1alpha1_storage_version_condition.c unit-test/test_v1alpha1_storage_version_list.c +unit-test/test_v1alpha1_storage_version_migration.c +unit-test/test_v1alpha1_storage_version_migration_list.c +unit-test/test_v1alpha1_storage_version_migration_spec.c +unit-test/test_v1alpha1_storage_version_migration_status.c unit-test/test_v1alpha1_storage_version_status.c unit-test/test_v1alpha1_type_checking.c unit-test/test_v1alpha1_validating_admission_policy.c @@ -2364,6 +2546,16 @@ unit-test/test_v1alpha1_variable.c unit-test/test_v1alpha1_volume_attributes_class.c unit-test/test_v1alpha1_volume_attributes_class_list.c unit-test/test_v1alpha2_allocation_result.c +unit-test/test_v1alpha2_driver_allocation_result.c +unit-test/test_v1alpha2_driver_requests.c +unit-test/test_v1alpha2_named_resources_allocation_result.c +unit-test/test_v1alpha2_named_resources_attribute.c +unit-test/test_v1alpha2_named_resources_filter.c +unit-test/test_v1alpha2_named_resources_instance.c +unit-test/test_v1alpha2_named_resources_int_slice.c +unit-test/test_v1alpha2_named_resources_request.c +unit-test/test_v1alpha2_named_resources_resources.c +unit-test/test_v1alpha2_named_resources_string_slice.c unit-test/test_v1alpha2_pod_scheduling_context.c unit-test/test_v1alpha2_pod_scheduling_context_list.c unit-test/test_v1alpha2_pod_scheduling_context_spec.c @@ -2371,6 +2563,8 @@ unit-test/test_v1alpha2_pod_scheduling_context_status.c unit-test/test_v1alpha2_resource_claim.c unit-test/test_v1alpha2_resource_claim_consumer_reference.c unit-test/test_v1alpha2_resource_claim_list.c +unit-test/test_v1alpha2_resource_claim_parameters.c +unit-test/test_v1alpha2_resource_claim_parameters_list.c unit-test/test_v1alpha2_resource_claim_parameters_reference.c unit-test/test_v1alpha2_resource_claim_scheduling_status.c unit-test/test_v1alpha2_resource_claim_spec.c @@ -2380,8 +2574,16 @@ unit-test/test_v1alpha2_resource_claim_template_list.c unit-test/test_v1alpha2_resource_claim_template_spec.c unit-test/test_v1alpha2_resource_class.c unit-test/test_v1alpha2_resource_class_list.c +unit-test/test_v1alpha2_resource_class_parameters.c +unit-test/test_v1alpha2_resource_class_parameters_list.c unit-test/test_v1alpha2_resource_class_parameters_reference.c +unit-test/test_v1alpha2_resource_filter.c unit-test/test_v1alpha2_resource_handle.c +unit-test/test_v1alpha2_resource_request.c +unit-test/test_v1alpha2_resource_slice.c +unit-test/test_v1alpha2_resource_slice_list.c +unit-test/test_v1alpha2_structured_resource_handle.c +unit-test/test_v1alpha2_vendor_parameters.c unit-test/test_v1beta1_audit_annotation.c unit-test/test_v1beta1_expression_warning.c unit-test/test_v1beta1_match_condition.c diff --git a/kubernetes/.openapi-generator/VERSION b/kubernetes/.openapi-generator/VERSION index fff4bdd..ecb2186 100644 --- a/kubernetes/.openapi-generator/VERSION +++ b/kubernetes/.openapi-generator/VERSION @@ -1 +1 @@ -7.3.0-SNAPSHOT \ No newline at end of file +7.6.0-SNAPSHOT diff --git a/kubernetes/.openapi-generator/swagger.json-default.sha256 b/kubernetes/.openapi-generator/swagger.json-default.sha256 index 2663205..563a584 100644 --- a/kubernetes/.openapi-generator/swagger.json-default.sha256 +++ b/kubernetes/.openapi-generator/swagger.json-default.sha256 @@ -1 +1 @@ -6ef09a5a61e17d1d9ec14ed30eb05c4aa944dbbecd7de7c8bc9f55b94179a337 \ No newline at end of file +c204ed91fd2c1c0d188588abfc26722743d02dce0446c9cb405e9bab16369be2 \ No newline at end of file diff --git a/kubernetes/CMakeLists.txt b/kubernetes/CMakeLists.txt index 08b39df..0dd4cf8 100644 --- a/kubernetes/CMakeLists.txt +++ b/kubernetes/CMakeLists.txt @@ -83,7 +83,9 @@ set(SRCS model/v1_api_service_spec.c model/v1_api_service_status.c model/v1_api_versions.c + model/v1_app_armor_profile.c model/v1_attached_volume.c + model/v1_audit_annotation.c model/v1_aws_elastic_block_store_volume_source.c model/v1_azure_disk_volume_source.c model/v1_azure_file_persistent_volume_source.c @@ -193,6 +195,7 @@ set(SRCS model/v1_eviction.c model/v1_exec_action.c model/v1_exempt_priority_level_configuration.c + model/v1_expression_warning.c model/v1_external_documentation.c model/v1_fc_volume_source.c model/v1_flex_persistent_volume_source.c @@ -270,10 +273,12 @@ set(SRCS model/v1_local_volume_source.c model/v1_managed_fields_entry.c model/v1_match_condition.c + model/v1_match_resources.c model/v1_modify_volume_status.c model/v1_mutating_webhook.c model/v1_mutating_webhook_configuration.c model/v1_mutating_webhook_configuration_list.c + model/v1_named_rule_with_operations.c model/v1_namespace.c model/v1_namespace_condition.c model/v1_namespace_list.c @@ -295,6 +300,8 @@ set(SRCS model/v1_node_config_status.c model/v1_node_daemon_endpoints.c model/v1_node_list.c + model/v1_node_runtime_handler.c + model/v1_node_runtime_handler_features.c model/v1_node_selector.c model/v1_node_selector_requirement.c model/v1_node_selector_term.c @@ -309,6 +316,8 @@ set(SRCS model/v1_object_reference.c model/v1_overhead.c model/v1_owner_reference.c + model/v1_param_kind.c + model/v1_param_ref.c model/v1_persistent_volume.c model/v1_persistent_volume_claim.c model/v1_persistent_volume_claim_condition.c @@ -418,6 +427,7 @@ set(SRCS model/v1_secret_reference.c model/v1_secret_volume_source.c model/v1_security_context.c + model/v1_selectable_field.c model/v1_self_subject_access_review.c model/v1_self_subject_access_review_spec.c model/v1_self_subject_review.c @@ -456,6 +466,8 @@ set(SRCS model/v1_subject_access_review_spec.c model/v1_subject_access_review_status.c model/v1_subject_rules_review_status.c + model/v1_success_policy.c + model/v1_success_policy_rule.c model/v1_sysctl.c model/v1_taint.c model/v1_tcp_socket_action.c @@ -468,15 +480,25 @@ set(SRCS model/v1_topology_selector_label_requirement.c model/v1_topology_selector_term.c model/v1_topology_spread_constraint.c + model/v1_type_checking.c model/v1_typed_local_object_reference.c model/v1_typed_object_reference.c model/v1_uncounted_terminated_pods.c model/v1_user_info.c model/v1_user_subject.c + model/v1_validating_admission_policy.c + model/v1_validating_admission_policy_binding.c + model/v1_validating_admission_policy_binding_list.c + model/v1_validating_admission_policy_binding_spec.c + model/v1_validating_admission_policy_list.c + model/v1_validating_admission_policy_spec.c + model/v1_validating_admission_policy_status.c model/v1_validating_webhook.c model/v1_validating_webhook_configuration.c model/v1_validating_webhook_configuration_list.c + model/v1_validation.c model/v1_validation_rule.c + model/v1_variable.c model/v1_volume.c model/v1_volume_attachment.c model/v1_volume_attachment_list.c @@ -486,6 +508,7 @@ set(SRCS model/v1_volume_device.c model/v1_volume_error.c model/v1_volume_mount.c + model/v1_volume_mount_status.c model/v1_volume_node_affinity.c model/v1_volume_node_resources.c model/v1_volume_projection.c @@ -500,11 +523,13 @@ set(SRCS model/v1alpha1_cluster_trust_bundle_list.c model/v1alpha1_cluster_trust_bundle_spec.c model/v1alpha1_expression_warning.c + model/v1alpha1_group_version_resource.c model/v1alpha1_ip_address.c model/v1alpha1_ip_address_list.c model/v1alpha1_ip_address_spec.c model/v1alpha1_match_condition.c model/v1alpha1_match_resources.c + model/v1alpha1_migration_condition.c model/v1alpha1_named_rule_with_operations.c model/v1alpha1_param_kind.c model/v1alpha1_param_ref.c @@ -519,6 +544,10 @@ set(SRCS model/v1alpha1_storage_version.c model/v1alpha1_storage_version_condition.c model/v1alpha1_storage_version_list.c + model/v1alpha1_storage_version_migration.c + model/v1alpha1_storage_version_migration_list.c + model/v1alpha1_storage_version_migration_spec.c + model/v1alpha1_storage_version_migration_status.c model/v1alpha1_storage_version_status.c model/v1alpha1_type_checking.c model/v1alpha1_validating_admission_policy.c @@ -533,6 +562,16 @@ set(SRCS model/v1alpha1_volume_attributes_class.c model/v1alpha1_volume_attributes_class_list.c model/v1alpha2_allocation_result.c + model/v1alpha2_driver_allocation_result.c + model/v1alpha2_driver_requests.c + model/v1alpha2_named_resources_allocation_result.c + model/v1alpha2_named_resources_attribute.c + model/v1alpha2_named_resources_filter.c + model/v1alpha2_named_resources_instance.c + model/v1alpha2_named_resources_int_slice.c + model/v1alpha2_named_resources_request.c + model/v1alpha2_named_resources_resources.c + model/v1alpha2_named_resources_string_slice.c model/v1alpha2_pod_scheduling_context.c model/v1alpha2_pod_scheduling_context_list.c model/v1alpha2_pod_scheduling_context_spec.c @@ -540,6 +579,8 @@ set(SRCS model/v1alpha2_resource_claim.c model/v1alpha2_resource_claim_consumer_reference.c model/v1alpha2_resource_claim_list.c + model/v1alpha2_resource_claim_parameters.c + model/v1alpha2_resource_claim_parameters_list.c model/v1alpha2_resource_claim_parameters_reference.c model/v1alpha2_resource_claim_scheduling_status.c model/v1alpha2_resource_claim_spec.c @@ -549,8 +590,16 @@ set(SRCS model/v1alpha2_resource_claim_template_spec.c model/v1alpha2_resource_class.c model/v1alpha2_resource_class_list.c + model/v1alpha2_resource_class_parameters.c + model/v1alpha2_resource_class_parameters_list.c model/v1alpha2_resource_class_parameters_reference.c + model/v1alpha2_resource_filter.c model/v1alpha2_resource_handle.c + model/v1alpha2_resource_request.c + model/v1alpha2_resource_slice.c + model/v1alpha2_resource_slice_list.c + model/v1alpha2_structured_resource_handle.c + model/v1alpha2_vendor_parameters.c model/v1beta1_audit_annotation.c model/v1beta1_expression_warning.c model/v1beta1_match_condition.c @@ -675,6 +724,8 @@ set(SRCS api/StorageAPI.c api/StorageV1API.c api/StorageV1alpha1API.c + api/StoragemigrationAPI.c + api/StoragemigrationV1alpha1API.c api/VersionAPI.c api/WellKnownAPI.c @@ -716,7 +767,9 @@ set(HDRS model/v1_api_service_spec.h model/v1_api_service_status.h model/v1_api_versions.h + model/v1_app_armor_profile.h model/v1_attached_volume.h + model/v1_audit_annotation.h model/v1_aws_elastic_block_store_volume_source.h model/v1_azure_disk_volume_source.h model/v1_azure_file_persistent_volume_source.h @@ -826,6 +879,7 @@ set(HDRS model/v1_eviction.h model/v1_exec_action.h model/v1_exempt_priority_level_configuration.h + model/v1_expression_warning.h model/v1_external_documentation.h model/v1_fc_volume_source.h model/v1_flex_persistent_volume_source.h @@ -903,10 +957,12 @@ set(HDRS model/v1_local_volume_source.h model/v1_managed_fields_entry.h model/v1_match_condition.h + model/v1_match_resources.h model/v1_modify_volume_status.h model/v1_mutating_webhook.h model/v1_mutating_webhook_configuration.h model/v1_mutating_webhook_configuration_list.h + model/v1_named_rule_with_operations.h model/v1_namespace.h model/v1_namespace_condition.h model/v1_namespace_list.h @@ -928,6 +984,8 @@ set(HDRS model/v1_node_config_status.h model/v1_node_daemon_endpoints.h model/v1_node_list.h + model/v1_node_runtime_handler.h + model/v1_node_runtime_handler_features.h model/v1_node_selector.h model/v1_node_selector_requirement.h model/v1_node_selector_term.h @@ -942,6 +1000,8 @@ set(HDRS model/v1_object_reference.h model/v1_overhead.h model/v1_owner_reference.h + model/v1_param_kind.h + model/v1_param_ref.h model/v1_persistent_volume.h model/v1_persistent_volume_claim.h model/v1_persistent_volume_claim_condition.h @@ -1051,6 +1111,7 @@ set(HDRS model/v1_secret_reference.h model/v1_secret_volume_source.h model/v1_security_context.h + model/v1_selectable_field.h model/v1_self_subject_access_review.h model/v1_self_subject_access_review_spec.h model/v1_self_subject_review.h @@ -1089,6 +1150,8 @@ set(HDRS model/v1_subject_access_review_spec.h model/v1_subject_access_review_status.h model/v1_subject_rules_review_status.h + model/v1_success_policy.h + model/v1_success_policy_rule.h model/v1_sysctl.h model/v1_taint.h model/v1_tcp_socket_action.h @@ -1101,15 +1164,25 @@ set(HDRS model/v1_topology_selector_label_requirement.h model/v1_topology_selector_term.h model/v1_topology_spread_constraint.h + model/v1_type_checking.h model/v1_typed_local_object_reference.h model/v1_typed_object_reference.h model/v1_uncounted_terminated_pods.h model/v1_user_info.h model/v1_user_subject.h + model/v1_validating_admission_policy.h + model/v1_validating_admission_policy_binding.h + model/v1_validating_admission_policy_binding_list.h + model/v1_validating_admission_policy_binding_spec.h + model/v1_validating_admission_policy_list.h + model/v1_validating_admission_policy_spec.h + model/v1_validating_admission_policy_status.h model/v1_validating_webhook.h model/v1_validating_webhook_configuration.h model/v1_validating_webhook_configuration_list.h + model/v1_validation.h model/v1_validation_rule.h + model/v1_variable.h model/v1_volume.h model/v1_volume_attachment.h model/v1_volume_attachment_list.h @@ -1119,6 +1192,7 @@ set(HDRS model/v1_volume_device.h model/v1_volume_error.h model/v1_volume_mount.h + model/v1_volume_mount_status.h model/v1_volume_node_affinity.h model/v1_volume_node_resources.h model/v1_volume_projection.h @@ -1133,11 +1207,13 @@ set(HDRS model/v1alpha1_cluster_trust_bundle_list.h model/v1alpha1_cluster_trust_bundle_spec.h model/v1alpha1_expression_warning.h + model/v1alpha1_group_version_resource.h model/v1alpha1_ip_address.h model/v1alpha1_ip_address_list.h model/v1alpha1_ip_address_spec.h model/v1alpha1_match_condition.h model/v1alpha1_match_resources.h + model/v1alpha1_migration_condition.h model/v1alpha1_named_rule_with_operations.h model/v1alpha1_param_kind.h model/v1alpha1_param_ref.h @@ -1152,6 +1228,10 @@ set(HDRS model/v1alpha1_storage_version.h model/v1alpha1_storage_version_condition.h model/v1alpha1_storage_version_list.h + model/v1alpha1_storage_version_migration.h + model/v1alpha1_storage_version_migration_list.h + model/v1alpha1_storage_version_migration_spec.h + model/v1alpha1_storage_version_migration_status.h model/v1alpha1_storage_version_status.h model/v1alpha1_type_checking.h model/v1alpha1_validating_admission_policy.h @@ -1166,6 +1246,16 @@ set(HDRS model/v1alpha1_volume_attributes_class.h model/v1alpha1_volume_attributes_class_list.h model/v1alpha2_allocation_result.h + model/v1alpha2_driver_allocation_result.h + model/v1alpha2_driver_requests.h + model/v1alpha2_named_resources_allocation_result.h + model/v1alpha2_named_resources_attribute.h + model/v1alpha2_named_resources_filter.h + model/v1alpha2_named_resources_instance.h + model/v1alpha2_named_resources_int_slice.h + model/v1alpha2_named_resources_request.h + model/v1alpha2_named_resources_resources.h + model/v1alpha2_named_resources_string_slice.h model/v1alpha2_pod_scheduling_context.h model/v1alpha2_pod_scheduling_context_list.h model/v1alpha2_pod_scheduling_context_spec.h @@ -1173,6 +1263,8 @@ set(HDRS model/v1alpha2_resource_claim.h model/v1alpha2_resource_claim_consumer_reference.h model/v1alpha2_resource_claim_list.h + model/v1alpha2_resource_claim_parameters.h + model/v1alpha2_resource_claim_parameters_list.h model/v1alpha2_resource_claim_parameters_reference.h model/v1alpha2_resource_claim_scheduling_status.h model/v1alpha2_resource_claim_spec.h @@ -1182,8 +1274,16 @@ set(HDRS model/v1alpha2_resource_claim_template_spec.h model/v1alpha2_resource_class.h model/v1alpha2_resource_class_list.h + model/v1alpha2_resource_class_parameters.h + model/v1alpha2_resource_class_parameters_list.h model/v1alpha2_resource_class_parameters_reference.h + model/v1alpha2_resource_filter.h model/v1alpha2_resource_handle.h + model/v1alpha2_resource_request.h + model/v1alpha2_resource_slice.h + model/v1alpha2_resource_slice_list.h + model/v1alpha2_structured_resource_handle.h + model/v1alpha2_vendor_parameters.h model/v1beta1_audit_annotation.h model/v1beta1_expression_warning.h model/v1beta1_match_condition.h @@ -1308,6 +1408,8 @@ set(HDRS api/StorageAPI.h api/StorageV1API.h api/StorageV1alpha1API.h + api/StoragemigrationAPI.h + api/StoragemigrationV1alpha1API.h api/VersionAPI.h api/WellKnownAPI.h @@ -1448,6 +1550,8 @@ set(HDRS "") # unit-tests/manual-StorageAPI.c # unit-tests/manual-StorageV1API.c # unit-tests/manual-StorageV1alpha1API.c +# unit-tests/manual-StoragemigrationAPI.c +# unit-tests/manual-StoragemigrationV1alpha1API.c # unit-tests/manual-VersionAPI.c # unit-tests/manual-WellKnownAPI.c #) diff --git a/kubernetes/PreTarget.cmake b/kubernetes/PreTarget.cmake index 382e4a4..271a7d6 100644 --- a/kubernetes/PreTarget.cmake +++ b/kubernetes/PreTarget.cmake @@ -1,5 +1,5 @@ set(PROJECT_VERSION_MAJOR 0) -set(PROJECT_VERSION_MINOR 9) +set(PROJECT_VERSION_MINOR 10) set(PROJECT_VERSION_PATCH 0) set(PROJECT_PACKAGE_DESCRIPTION_SUMMARY "The Kubernetes client library for the C programming language.") diff --git a/kubernetes/README.md b/kubernetes/README.md index ac5ce10..188c05d 100644 --- a/kubernetes/README.md +++ b/kubernetes/README.md @@ -3,8 +3,9 @@ ## Overview This API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project. By using the [OpenAPI spec](https://openapis.org) from a remote server, you can easily generate an API client. -- API version: release-1.29 +- API version: release-1.30 - Package version: +- Generator version: 7.6.0-SNAPSHOT - Build package: org.openapitools.codegen.languages.CLibcurlClientCodegen ## Installation @@ -66,19 +67,36 @@ Category | Method | HTTP request | Description ------------ | ------------- | ------------- | ------------- *AdmissionregistrationAPI* | [**AdmissionregistrationAPI_getAPIGroup**](docs/AdmissionregistrationAPI.md#AdmissionregistrationAPI_getAPIGroup) | **GET** /apis/admissionregistration.k8s.io/ | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_createMutatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_createMutatingWebhookConfiguration) | **POST** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_createValidatingAdmissionPolicy**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_createValidatingAdmissionPolicy) | **POST** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_createValidatingAdmissionPolicyBinding**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_createValidatingAdmissionPolicyBinding) | **POST** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_createValidatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_createValidatingWebhookConfiguration) | **POST** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_deleteCollectionMutatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteCollectionMutatingWebhookConfiguration) | **DELETE** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicy**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicy) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicyBinding**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicyBinding) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_deleteCollectionValidatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteCollectionValidatingWebhookConfiguration) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_deleteMutatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteMutatingWebhookConfiguration) | **DELETE** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_deleteValidatingAdmissionPolicy**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteValidatingAdmissionPolicy) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_deleteValidatingAdmissionPolicyBinding**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteValidatingAdmissionPolicyBinding) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name} | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_deleteValidatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteValidatingWebhookConfiguration) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name} | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_getAPIResources**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_getAPIResources) | **GET** /apis/admissionregistration.k8s.io/v1/ | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_listMutatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_listMutatingWebhookConfiguration) | **GET** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_listValidatingAdmissionPolicy**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_listValidatingAdmissionPolicy) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_listValidatingAdmissionPolicyBinding**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_listValidatingAdmissionPolicyBinding) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_listValidatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_listValidatingWebhookConfiguration) | **GET** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_patchMutatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchMutatingWebhookConfiguration) | **PATCH** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_patchValidatingAdmissionPolicy**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchValidatingAdmissionPolicy) | **PATCH** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_patchValidatingAdmissionPolicyBinding**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchValidatingAdmissionPolicyBinding) | **PATCH** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_patchValidatingAdmissionPolicyStatus**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchValidatingAdmissionPolicyStatus) | **PATCH** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_patchValidatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchValidatingWebhookConfiguration) | **PATCH** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name} | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_readMutatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_readMutatingWebhookConfiguration) | **GET** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_readValidatingAdmissionPolicy**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_readValidatingAdmissionPolicy) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_readValidatingAdmissionPolicyBinding**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_readValidatingAdmissionPolicyBinding) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_readValidatingAdmissionPolicyStatus**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_readValidatingAdmissionPolicyStatus) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_readValidatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_readValidatingWebhookConfiguration) | **GET** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name} | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_replaceMutatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceMutatingWebhookConfiguration) | **PUT** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_replaceValidatingAdmissionPolicy**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceValidatingAdmissionPolicy) | **PUT** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_replaceValidatingAdmissionPolicyBinding**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceValidatingAdmissionPolicyBinding) | **PUT** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name} | +*AdmissionregistrationV1API* | [**AdmissionregistrationV1API_replaceValidatingAdmissionPolicyStatus**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceValidatingAdmissionPolicyStatus) | **PUT** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status | *AdmissionregistrationV1API* | [**AdmissionregistrationV1API_replaceValidatingWebhookConfiguration**](docs/AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceValidatingWebhookConfiguration) | **PUT** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name} | *AdmissionregistrationV1alpha1API* | [**AdmissionregistrationV1alpha1API_createValidatingAdmissionPolicy**](docs/AdmissionregistrationV1alpha1API.md#AdmissionregistrationV1alpha1API_createValidatingAdmissionPolicy) | **POST** /apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicies | *AdmissionregistrationV1alpha1API* | [**AdmissionregistrationV1alpha1API_createValidatingAdmissionPolicyBinding**](docs/AdmissionregistrationV1alpha1API.md#AdmissionregistrationV1alpha1API_createValidatingAdmissionPolicyBinding) | **POST** /apis/admissionregistration.k8s.io/v1alpha1/validatingadmissionpolicybindings | @@ -712,42 +730,65 @@ Category | Method | HTTP request | Description *ResourceAPI* | [**ResourceAPI_getAPIGroup**](docs/ResourceAPI.md#ResourceAPI_getAPIGroup) | **GET** /apis/resource.k8s.io/ | *ResourceV1alpha2API* | [**ResourceV1alpha2API_createNamespacedPodSchedulingContext**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedPodSchedulingContext) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts | *ResourceV1alpha2API* | [**ResourceV1alpha2API_createNamespacedResourceClaim**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedResourceClaim) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_createNamespacedResourceClaimParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedResourceClaimParameters) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters | *ResourceV1alpha2API* | [**ResourceV1alpha2API_createNamespacedResourceClaimTemplate**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedResourceClaimTemplate) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_createNamespacedResourceClassParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedResourceClassParameters) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters | *ResourceV1alpha2API* | [**ResourceV1alpha2API_createResourceClass**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_createResourceClass) | **POST** /apis/resource.k8s.io/v1alpha2/resourceclasses | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_createResourceSlice**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_createResourceSlice) | **POST** /apis/resource.k8s.io/v1alpha2/resourceslices | *ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteCollectionNamespacedPodSchedulingContext**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedPodSchedulingContext) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts | *ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteCollectionNamespacedResourceClaim**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedResourceClaim) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimParameters) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters | *ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimTemplate**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimTemplate) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteCollectionNamespacedResourceClassParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedResourceClassParameters) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters | *ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteCollectionResourceClass**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionResourceClass) | **DELETE** /apis/resource.k8s.io/v1alpha2/resourceclasses | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteCollectionResourceSlice**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionResourceSlice) | **DELETE** /apis/resource.k8s.io/v1alpha2/resourceslices | *ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteNamespacedPodSchedulingContext**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedPodSchedulingContext) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteNamespacedResourceClaim**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedResourceClaim) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteNamespacedResourceClaimParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedResourceClaimParameters) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteNamespacedResourceClaimTemplate**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedResourceClaimTemplate) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteNamespacedResourceClassParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedResourceClassParameters) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteResourceClass**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteResourceClass) | **DELETE** /apis/resource.k8s.io/v1alpha2/resourceclasses/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_deleteResourceSlice**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_deleteResourceSlice) | **DELETE** /apis/resource.k8s.io/v1alpha2/resourceslices/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_getAPIResources**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_getAPIResources) | **GET** /apis/resource.k8s.io/v1alpha2/ | *ResourceV1alpha2API* | [**ResourceV1alpha2API_listNamespacedPodSchedulingContext**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedPodSchedulingContext) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts | *ResourceV1alpha2API* | [**ResourceV1alpha2API_listNamespacedResourceClaim**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedResourceClaim) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_listNamespacedResourceClaimParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedResourceClaimParameters) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters | *ResourceV1alpha2API* | [**ResourceV1alpha2API_listNamespacedResourceClaimTemplate**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedResourceClaimTemplate) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_listNamespacedResourceClassParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedResourceClassParameters) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters | *ResourceV1alpha2API* | [**ResourceV1alpha2API_listPodSchedulingContextForAllNamespaces**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listPodSchedulingContextForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/podschedulingcontexts | *ResourceV1alpha2API* | [**ResourceV1alpha2API_listResourceClaimForAllNamespaces**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClaimForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclaims | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_listResourceClaimParametersForAllNamespaces**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClaimParametersForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclaimparameters | *ResourceV1alpha2API* | [**ResourceV1alpha2API_listResourceClaimTemplateForAllNamespaces**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClaimTemplateForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclaimtemplates | *ResourceV1alpha2API* | [**ResourceV1alpha2API_listResourceClass**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClass) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclasses | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_listResourceClassParametersForAllNamespaces**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClassParametersForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclassparameters | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_listResourceSlice**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceSlice) | **GET** /apis/resource.k8s.io/v1alpha2/resourceslices | *ResourceV1alpha2API* | [**ResourceV1alpha2API_patchNamespacedPodSchedulingContext**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedPodSchedulingContext) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_patchNamespacedPodSchedulingContextStatus**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedPodSchedulingContextStatus) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name}/status | *ResourceV1alpha2API* | [**ResourceV1alpha2API_patchNamespacedResourceClaim**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClaim) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_patchNamespacedResourceClaimParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClaimParameters) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_patchNamespacedResourceClaimStatus**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClaimStatus) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status | *ResourceV1alpha2API* | [**ResourceV1alpha2API_patchNamespacedResourceClaimTemplate**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClaimTemplate) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_patchNamespacedResourceClassParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClassParameters) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_patchResourceClass**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchResourceClass) | **PATCH** /apis/resource.k8s.io/v1alpha2/resourceclasses/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_patchResourceSlice**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_patchResourceSlice) | **PATCH** /apis/resource.k8s.io/v1alpha2/resourceslices/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_readNamespacedPodSchedulingContext**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedPodSchedulingContext) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_readNamespacedPodSchedulingContextStatus**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedPodSchedulingContextStatus) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name}/status | *ResourceV1alpha2API* | [**ResourceV1alpha2API_readNamespacedResourceClaim**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClaim) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_readNamespacedResourceClaimParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClaimParameters) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_readNamespacedResourceClaimStatus**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClaimStatus) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status | *ResourceV1alpha2API* | [**ResourceV1alpha2API_readNamespacedResourceClaimTemplate**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClaimTemplate) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_readNamespacedResourceClassParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClassParameters) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_readResourceClass**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readResourceClass) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclasses/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_readResourceSlice**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_readResourceSlice) | **GET** /apis/resource.k8s.io/v1alpha2/resourceslices/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceNamespacedPodSchedulingContext**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedPodSchedulingContext) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceNamespacedPodSchedulingContextStatus**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedPodSchedulingContextStatus) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name}/status | *ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceNamespacedResourceClaim**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClaim) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceNamespacedResourceClaimParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClaimParameters) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceNamespacedResourceClaimStatus**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClaimStatus) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status | *ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceNamespacedResourceClaimTemplate**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClaimTemplate) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceNamespacedResourceClassParameters**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClassParameters) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name} | *ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceResourceClass**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceResourceClass) | **PUT** /apis/resource.k8s.io/v1alpha2/resourceclasses/{name} | +*ResourceV1alpha2API* | [**ResourceV1alpha2API_replaceResourceSlice**](docs/ResourceV1alpha2API.md#ResourceV1alpha2API_replaceResourceSlice) | **PUT** /apis/resource.k8s.io/v1alpha2/resourceslices/{name} | *SchedulingAPI* | [**SchedulingAPI_getAPIGroup**](docs/SchedulingAPI.md#SchedulingAPI_getAPIGroup) | **GET** /apis/scheduling.k8s.io/ | *SchedulingV1API* | [**SchedulingV1API_createPriorityClass**](docs/SchedulingV1API.md#SchedulingV1API_createPriorityClass) | **POST** /apis/scheduling.k8s.io/v1/priorityclasses | *SchedulingV1API* | [**SchedulingV1API_deleteCollectionPriorityClass**](docs/SchedulingV1API.md#SchedulingV1API_deleteCollectionPriorityClass) | **DELETE** /apis/scheduling.k8s.io/v1/priorityclasses | @@ -806,6 +847,18 @@ Category | Method | HTTP request | Description *StorageV1alpha1API* | [**StorageV1alpha1API_patchVolumeAttributesClass**](docs/StorageV1alpha1API.md#StorageV1alpha1API_patchVolumeAttributesClass) | **PATCH** /apis/storage.k8s.io/v1alpha1/volumeattributesclasses/{name} | *StorageV1alpha1API* | [**StorageV1alpha1API_readVolumeAttributesClass**](docs/StorageV1alpha1API.md#StorageV1alpha1API_readVolumeAttributesClass) | **GET** /apis/storage.k8s.io/v1alpha1/volumeattributesclasses/{name} | *StorageV1alpha1API* | [**StorageV1alpha1API_replaceVolumeAttributesClass**](docs/StorageV1alpha1API.md#StorageV1alpha1API_replaceVolumeAttributesClass) | **PUT** /apis/storage.k8s.io/v1alpha1/volumeattributesclasses/{name} | +*StoragemigrationAPI* | [**StoragemigrationAPI_getAPIGroup**](docs/StoragemigrationAPI.md#StoragemigrationAPI_getAPIGroup) | **GET** /apis/storagemigration.k8s.io/ | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_createStorageVersionMigration**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_createStorageVersionMigration) | **POST** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_deleteCollectionStorageVersionMigration**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_deleteCollectionStorageVersionMigration) | **DELETE** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_deleteStorageVersionMigration**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_deleteStorageVersionMigration) | **DELETE** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name} | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_getAPIResources**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_getAPIResources) | **GET** /apis/storagemigration.k8s.io/v1alpha1/ | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_listStorageVersionMigration**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_listStorageVersionMigration) | **GET** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_patchStorageVersionMigration**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_patchStorageVersionMigration) | **PATCH** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name} | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_patchStorageVersionMigrationStatus**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_patchStorageVersionMigrationStatus) | **PATCH** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_readStorageVersionMigration**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_readStorageVersionMigration) | **GET** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name} | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_readStorageVersionMigrationStatus**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_readStorageVersionMigrationStatus) | **GET** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_replaceStorageVersionMigration**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_replaceStorageVersionMigration) | **PUT** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name} | +*StoragemigrationV1alpha1API* | [**StoragemigrationV1alpha1API_replaceStorageVersionMigrationStatus**](docs/StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_replaceStorageVersionMigrationStatus) | **PUT** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status | *VersionAPI* | [**VersionAPI_getCode**](docs/VersionAPI.md#VersionAPI_getCode) | **GET** /version/ | *WellKnownAPI* | [**WellKnownAPI_getServiceAccountIssuerOpenIDConfiguration**](docs/WellKnownAPI.md#WellKnownAPI_getServiceAccountIssuerOpenIDConfiguration) | **GET** /.well-known/openid-configuration | @@ -841,7 +894,9 @@ Category | Method | HTTP request | Description - [v1_api_service_spec_t](docs/v1_api_service_spec.md) - [v1_api_service_status_t](docs/v1_api_service_status.md) - [v1_api_versions_t](docs/v1_api_versions.md) + - [v1_app_armor_profile_t](docs/v1_app_armor_profile.md) - [v1_attached_volume_t](docs/v1_attached_volume.md) + - [v1_audit_annotation_t](docs/v1_audit_annotation.md) - [v1_aws_elastic_block_store_volume_source_t](docs/v1_aws_elastic_block_store_volume_source.md) - [v1_azure_disk_volume_source_t](docs/v1_azure_disk_volume_source.md) - [v1_azure_file_persistent_volume_source_t](docs/v1_azure_file_persistent_volume_source.md) @@ -951,6 +1006,7 @@ Category | Method | HTTP request | Description - [v1_eviction_t](docs/v1_eviction.md) - [v1_exec_action_t](docs/v1_exec_action.md) - [v1_exempt_priority_level_configuration_t](docs/v1_exempt_priority_level_configuration.md) + - [v1_expression_warning_t](docs/v1_expression_warning.md) - [v1_external_documentation_t](docs/v1_external_documentation.md) - [v1_fc_volume_source_t](docs/v1_fc_volume_source.md) - [v1_flex_persistent_volume_source_t](docs/v1_flex_persistent_volume_source.md) @@ -1028,10 +1084,12 @@ Category | Method | HTTP request | Description - [v1_local_volume_source_t](docs/v1_local_volume_source.md) - [v1_managed_fields_entry_t](docs/v1_managed_fields_entry.md) - [v1_match_condition_t](docs/v1_match_condition.md) + - [v1_match_resources_t](docs/v1_match_resources.md) - [v1_modify_volume_status_t](docs/v1_modify_volume_status.md) - [v1_mutating_webhook_t](docs/v1_mutating_webhook.md) - [v1_mutating_webhook_configuration_t](docs/v1_mutating_webhook_configuration.md) - [v1_mutating_webhook_configuration_list_t](docs/v1_mutating_webhook_configuration_list.md) + - [v1_named_rule_with_operations_t](docs/v1_named_rule_with_operations.md) - [v1_namespace_t](docs/v1_namespace.md) - [v1_namespace_condition_t](docs/v1_namespace_condition.md) - [v1_namespace_list_t](docs/v1_namespace_list.md) @@ -1053,6 +1111,8 @@ Category | Method | HTTP request | Description - [v1_node_config_status_t](docs/v1_node_config_status.md) - [v1_node_daemon_endpoints_t](docs/v1_node_daemon_endpoints.md) - [v1_node_list_t](docs/v1_node_list.md) + - [v1_node_runtime_handler_t](docs/v1_node_runtime_handler.md) + - [v1_node_runtime_handler_features_t](docs/v1_node_runtime_handler_features.md) - [v1_node_selector_t](docs/v1_node_selector.md) - [v1_node_selector_requirement_t](docs/v1_node_selector_requirement.md) - [v1_node_selector_term_t](docs/v1_node_selector_term.md) @@ -1067,6 +1127,8 @@ Category | Method | HTTP request | Description - [v1_object_reference_t](docs/v1_object_reference.md) - [v1_overhead_t](docs/v1_overhead.md) - [v1_owner_reference_t](docs/v1_owner_reference.md) + - [v1_param_kind_t](docs/v1_param_kind.md) + - [v1_param_ref_t](docs/v1_param_ref.md) - [v1_persistent_volume_t](docs/v1_persistent_volume.md) - [v1_persistent_volume_claim_t](docs/v1_persistent_volume_claim.md) - [v1_persistent_volume_claim_condition_t](docs/v1_persistent_volume_claim_condition.md) @@ -1176,6 +1238,7 @@ Category | Method | HTTP request | Description - [v1_secret_reference_t](docs/v1_secret_reference.md) - [v1_secret_volume_source_t](docs/v1_secret_volume_source.md) - [v1_security_context_t](docs/v1_security_context.md) + - [v1_selectable_field_t](docs/v1_selectable_field.md) - [v1_self_subject_access_review_t](docs/v1_self_subject_access_review.md) - [v1_self_subject_access_review_spec_t](docs/v1_self_subject_access_review_spec.md) - [v1_self_subject_review_t](docs/v1_self_subject_review.md) @@ -1214,6 +1277,8 @@ Category | Method | HTTP request | Description - [v1_subject_access_review_spec_t](docs/v1_subject_access_review_spec.md) - [v1_subject_access_review_status_t](docs/v1_subject_access_review_status.md) - [v1_subject_rules_review_status_t](docs/v1_subject_rules_review_status.md) + - [v1_success_policy_t](docs/v1_success_policy.md) + - [v1_success_policy_rule_t](docs/v1_success_policy_rule.md) - [v1_sysctl_t](docs/v1_sysctl.md) - [v1_taint_t](docs/v1_taint.md) - [v1_tcp_socket_action_t](docs/v1_tcp_socket_action.md) @@ -1226,15 +1291,25 @@ Category | Method | HTTP request | Description - [v1_topology_selector_label_requirement_t](docs/v1_topology_selector_label_requirement.md) - [v1_topology_selector_term_t](docs/v1_topology_selector_term.md) - [v1_topology_spread_constraint_t](docs/v1_topology_spread_constraint.md) + - [v1_type_checking_t](docs/v1_type_checking.md) - [v1_typed_local_object_reference_t](docs/v1_typed_local_object_reference.md) - [v1_typed_object_reference_t](docs/v1_typed_object_reference.md) - [v1_uncounted_terminated_pods_t](docs/v1_uncounted_terminated_pods.md) - [v1_user_info_t](docs/v1_user_info.md) - [v1_user_subject_t](docs/v1_user_subject.md) + - [v1_validating_admission_policy_t](docs/v1_validating_admission_policy.md) + - [v1_validating_admission_policy_binding_t](docs/v1_validating_admission_policy_binding.md) + - [v1_validating_admission_policy_binding_list_t](docs/v1_validating_admission_policy_binding_list.md) + - [v1_validating_admission_policy_binding_spec_t](docs/v1_validating_admission_policy_binding_spec.md) + - [v1_validating_admission_policy_list_t](docs/v1_validating_admission_policy_list.md) + - [v1_validating_admission_policy_spec_t](docs/v1_validating_admission_policy_spec.md) + - [v1_validating_admission_policy_status_t](docs/v1_validating_admission_policy_status.md) - [v1_validating_webhook_t](docs/v1_validating_webhook.md) - [v1_validating_webhook_configuration_t](docs/v1_validating_webhook_configuration.md) - [v1_validating_webhook_configuration_list_t](docs/v1_validating_webhook_configuration_list.md) + - [v1_validation_t](docs/v1_validation.md) - [v1_validation_rule_t](docs/v1_validation_rule.md) + - [v1_variable_t](docs/v1_variable.md) - [v1_volume_t](docs/v1_volume.md) - [v1_volume_attachment_t](docs/v1_volume_attachment.md) - [v1_volume_attachment_list_t](docs/v1_volume_attachment_list.md) @@ -1244,6 +1319,7 @@ Category | Method | HTTP request | Description - [v1_volume_device_t](docs/v1_volume_device.md) - [v1_volume_error_t](docs/v1_volume_error.md) - [v1_volume_mount_t](docs/v1_volume_mount.md) + - [v1_volume_mount_status_t](docs/v1_volume_mount_status.md) - [v1_volume_node_affinity_t](docs/v1_volume_node_affinity.md) - [v1_volume_node_resources_t](docs/v1_volume_node_resources.md) - [v1_volume_projection_t](docs/v1_volume_projection.md) @@ -1258,11 +1334,13 @@ Category | Method | HTTP request | Description - [v1alpha1_cluster_trust_bundle_list_t](docs/v1alpha1_cluster_trust_bundle_list.md) - [v1alpha1_cluster_trust_bundle_spec_t](docs/v1alpha1_cluster_trust_bundle_spec.md) - [v1alpha1_expression_warning_t](docs/v1alpha1_expression_warning.md) + - [v1alpha1_group_version_resource_t](docs/v1alpha1_group_version_resource.md) - [v1alpha1_ip_address_t](docs/v1alpha1_ip_address.md) - [v1alpha1_ip_address_list_t](docs/v1alpha1_ip_address_list.md) - [v1alpha1_ip_address_spec_t](docs/v1alpha1_ip_address_spec.md) - [v1alpha1_match_condition_t](docs/v1alpha1_match_condition.md) - [v1alpha1_match_resources_t](docs/v1alpha1_match_resources.md) + - [v1alpha1_migration_condition_t](docs/v1alpha1_migration_condition.md) - [v1alpha1_named_rule_with_operations_t](docs/v1alpha1_named_rule_with_operations.md) - [v1alpha1_param_kind_t](docs/v1alpha1_param_kind.md) - [v1alpha1_param_ref_t](docs/v1alpha1_param_ref.md) @@ -1277,6 +1355,10 @@ Category | Method | HTTP request | Description - [v1alpha1_storage_version_t](docs/v1alpha1_storage_version.md) - [v1alpha1_storage_version_condition_t](docs/v1alpha1_storage_version_condition.md) - [v1alpha1_storage_version_list_t](docs/v1alpha1_storage_version_list.md) + - [v1alpha1_storage_version_migration_t](docs/v1alpha1_storage_version_migration.md) + - [v1alpha1_storage_version_migration_list_t](docs/v1alpha1_storage_version_migration_list.md) + - [v1alpha1_storage_version_migration_spec_t](docs/v1alpha1_storage_version_migration_spec.md) + - [v1alpha1_storage_version_migration_status_t](docs/v1alpha1_storage_version_migration_status.md) - [v1alpha1_storage_version_status_t](docs/v1alpha1_storage_version_status.md) - [v1alpha1_type_checking_t](docs/v1alpha1_type_checking.md) - [v1alpha1_validating_admission_policy_t](docs/v1alpha1_validating_admission_policy.md) @@ -1291,6 +1373,16 @@ Category | Method | HTTP request | Description - [v1alpha1_volume_attributes_class_t](docs/v1alpha1_volume_attributes_class.md) - [v1alpha1_volume_attributes_class_list_t](docs/v1alpha1_volume_attributes_class_list.md) - [v1alpha2_allocation_result_t](docs/v1alpha2_allocation_result.md) + - [v1alpha2_driver_allocation_result_t](docs/v1alpha2_driver_allocation_result.md) + - [v1alpha2_driver_requests_t](docs/v1alpha2_driver_requests.md) + - [v1alpha2_named_resources_allocation_result_t](docs/v1alpha2_named_resources_allocation_result.md) + - [v1alpha2_named_resources_attribute_t](docs/v1alpha2_named_resources_attribute.md) + - [v1alpha2_named_resources_filter_t](docs/v1alpha2_named_resources_filter.md) + - [v1alpha2_named_resources_instance_t](docs/v1alpha2_named_resources_instance.md) + - [v1alpha2_named_resources_int_slice_t](docs/v1alpha2_named_resources_int_slice.md) + - [v1alpha2_named_resources_request_t](docs/v1alpha2_named_resources_request.md) + - [v1alpha2_named_resources_resources_t](docs/v1alpha2_named_resources_resources.md) + - [v1alpha2_named_resources_string_slice_t](docs/v1alpha2_named_resources_string_slice.md) - [v1alpha2_pod_scheduling_context_t](docs/v1alpha2_pod_scheduling_context.md) - [v1alpha2_pod_scheduling_context_list_t](docs/v1alpha2_pod_scheduling_context_list.md) - [v1alpha2_pod_scheduling_context_spec_t](docs/v1alpha2_pod_scheduling_context_spec.md) @@ -1298,6 +1390,8 @@ Category | Method | HTTP request | Description - [v1alpha2_resource_claim_t](docs/v1alpha2_resource_claim.md) - [v1alpha2_resource_claim_consumer_reference_t](docs/v1alpha2_resource_claim_consumer_reference.md) - [v1alpha2_resource_claim_list_t](docs/v1alpha2_resource_claim_list.md) + - [v1alpha2_resource_claim_parameters_t](docs/v1alpha2_resource_claim_parameters.md) + - [v1alpha2_resource_claim_parameters_list_t](docs/v1alpha2_resource_claim_parameters_list.md) - [v1alpha2_resource_claim_parameters_reference_t](docs/v1alpha2_resource_claim_parameters_reference.md) - [v1alpha2_resource_claim_scheduling_status_t](docs/v1alpha2_resource_claim_scheduling_status.md) - [v1alpha2_resource_claim_spec_t](docs/v1alpha2_resource_claim_spec.md) @@ -1307,8 +1401,16 @@ Category | Method | HTTP request | Description - [v1alpha2_resource_claim_template_spec_t](docs/v1alpha2_resource_claim_template_spec.md) - [v1alpha2_resource_class_t](docs/v1alpha2_resource_class.md) - [v1alpha2_resource_class_list_t](docs/v1alpha2_resource_class_list.md) + - [v1alpha2_resource_class_parameters_t](docs/v1alpha2_resource_class_parameters.md) + - [v1alpha2_resource_class_parameters_list_t](docs/v1alpha2_resource_class_parameters_list.md) - [v1alpha2_resource_class_parameters_reference_t](docs/v1alpha2_resource_class_parameters_reference.md) + - [v1alpha2_resource_filter_t](docs/v1alpha2_resource_filter.md) - [v1alpha2_resource_handle_t](docs/v1alpha2_resource_handle.md) + - [v1alpha2_resource_request_t](docs/v1alpha2_resource_request.md) + - [v1alpha2_resource_slice_t](docs/v1alpha2_resource_slice.md) + - [v1alpha2_resource_slice_list_t](docs/v1alpha2_resource_slice_list.md) + - [v1alpha2_structured_resource_handle_t](docs/v1alpha2_structured_resource_handle.md) + - [v1alpha2_vendor_parameters_t](docs/v1alpha2_vendor_parameters.md) - [v1beta1_audit_annotation_t](docs/v1beta1_audit_annotation.md) - [v1beta1_expression_warning_t](docs/v1beta1_expression_warning.md) - [v1beta1_match_condition_t](docs/v1beta1_match_condition.md) diff --git a/kubernetes/api/AdmissionregistrationV1API.c b/kubernetes/api/AdmissionregistrationV1API.c index 73d881a..2b6369d 100644 --- a/kubernetes/api/AdmissionregistrationV1API.c +++ b/kubernetes/api/AdmissionregistrationV1API.c @@ -197,6 +197,376 @@ end: } +// create a ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_createValidatingAdmissionPolicy(apiClient_t *apiClient, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_validating_admission_policy_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "POST"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_t *elementToReturn = v1_validating_admission_policy_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// create a ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* +AdmissionregistrationV1API_createValidatingAdmissionPolicyBinding(apiClient_t *apiClient, v1_validating_admission_policy_binding_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_validating_admission_policy_binding_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "POST"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_binding_t *elementToReturn = v1_validating_admission_policy_binding_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // create a ValidatingWebhookConfiguration // v1_validating_webhook_configuration_t* @@ -780,6 +1150,802 @@ end: } +// delete collection of ValidatingAdmissionPolicy +// +v1_status_t* +AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicy(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// delete collection of ValidatingAdmissionPolicyBinding +// +v1_status_t* +AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // delete collection of ValidatingWebhookConfiguration // v1_status_t* @@ -1396,6 +2562,442 @@ end: } +// delete a ValidatingAdmissionPolicy +// +v1_status_t* +AdmissionregistrationV1API_deleteValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// delete a ValidatingAdmissionPolicyBinding +// +v1_status_t* +AdmissionregistrationV1API_deleteValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // delete a ValidatingWebhookConfiguration // v1_status_t* @@ -2019,6 +3621,682 @@ end: } +// list or watch objects of kind ValidatingAdmissionPolicy +// +v1_validating_admission_policy_list_t* +AdmissionregistrationV1API_listValidatingAdmissionPolicy(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_allowWatchBookmarks = NULL; + char * valueQuery_allowWatchBookmarks = NULL; + keyValuePair_t *keyPairQuery_allowWatchBookmarks = 0; + if (allowWatchBookmarks) + { + keyQuery_allowWatchBookmarks = strdup("allowWatchBookmarks"); + valueQuery_allowWatchBookmarks = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_allowWatchBookmarks, MAX_NUMBER_LENGTH, "%d", *allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = keyValuePair_create(keyQuery_allowWatchBookmarks, valueQuery_allowWatchBookmarks); + list_addElement(localVarQueryParameters,keyPairQuery_allowWatchBookmarks); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // query parameters + char *keyQuery_watch = NULL; + char * valueQuery_watch = NULL; + keyValuePair_t *keyPairQuery_watch = 0; + if (watch) + { + keyQuery_watch = strdup("watch"); + valueQuery_watch = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_watch, MAX_NUMBER_LENGTH, "%d", *watch); + keyPairQuery_watch = keyValuePair_create(keyQuery_watch, valueQuery_watch); + list_addElement(localVarQueryParameters,keyPairQuery_watch); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarHeaderType,"application/json;stream=watch"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf;stream=watch"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_list_t *elementToReturn = v1_validating_admission_policy_list_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_allowWatchBookmarks){ + free(keyQuery_allowWatchBookmarks); + keyQuery_allowWatchBookmarks = NULL; + } + if(valueQuery_allowWatchBookmarks){ + free(valueQuery_allowWatchBookmarks); + valueQuery_allowWatchBookmarks = NULL; + } + if(keyPairQuery_allowWatchBookmarks){ + keyValuePair_free(keyPairQuery_allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + if(keyQuery_watch){ + free(keyQuery_watch); + keyQuery_watch = NULL; + } + if(valueQuery_watch){ + free(valueQuery_watch); + valueQuery_watch = NULL; + } + if(keyPairQuery_watch){ + keyValuePair_free(keyPairQuery_watch); + keyPairQuery_watch = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// list or watch objects of kind ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_list_t* +AdmissionregistrationV1API_listValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_allowWatchBookmarks = NULL; + char * valueQuery_allowWatchBookmarks = NULL; + keyValuePair_t *keyPairQuery_allowWatchBookmarks = 0; + if (allowWatchBookmarks) + { + keyQuery_allowWatchBookmarks = strdup("allowWatchBookmarks"); + valueQuery_allowWatchBookmarks = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_allowWatchBookmarks, MAX_NUMBER_LENGTH, "%d", *allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = keyValuePair_create(keyQuery_allowWatchBookmarks, valueQuery_allowWatchBookmarks); + list_addElement(localVarQueryParameters,keyPairQuery_allowWatchBookmarks); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // query parameters + char *keyQuery_watch = NULL; + char * valueQuery_watch = NULL; + keyValuePair_t *keyPairQuery_watch = 0; + if (watch) + { + keyQuery_watch = strdup("watch"); + valueQuery_watch = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_watch, MAX_NUMBER_LENGTH, "%d", *watch); + keyPairQuery_watch = keyValuePair_create(keyQuery_watch, valueQuery_watch); + list_addElement(localVarQueryParameters,keyPairQuery_watch); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarHeaderType,"application/json;stream=watch"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf;stream=watch"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_binding_list_t *elementToReturn = v1_validating_admission_policy_binding_list_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_allowWatchBookmarks){ + free(keyQuery_allowWatchBookmarks); + keyQuery_allowWatchBookmarks = NULL; + } + if(valueQuery_allowWatchBookmarks){ + free(valueQuery_allowWatchBookmarks); + valueQuery_allowWatchBookmarks = NULL; + } + if(keyPairQuery_allowWatchBookmarks){ + keyValuePair_free(keyPairQuery_allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + if(keyQuery_watch){ + free(keyQuery_watch); + keyQuery_watch = NULL; + } + if(valueQuery_watch){ + free(valueQuery_watch); + valueQuery_watch = NULL; + } + if(keyPairQuery_watch){ + keyValuePair_free(keyPairQuery_watch); + keyPairQuery_watch = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // list or watch objects of kind ValidatingWebhookConfiguration // v1_validating_webhook_configuration_list_t* @@ -2578,6 +4856,669 @@ end: } +// partially update the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_patchValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = list_createList(); + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // query parameters + char *keyQuery_force = NULL; + char * valueQuery_force = NULL; + keyValuePair_t *keyPairQuery_force = 0; + if (force) + { + keyQuery_force = strdup("force"); + valueQuery_force = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_force, MAX_NUMBER_LENGTH, "%d", *force); + keyPairQuery_force = keyValuePair_create(keyQuery_force, valueQuery_force); + list_addElement(localVarQueryParameters,keyPairQuery_force); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = object_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarContentType,"application/json-patch+json"); //consumes + list_addElement(localVarContentType,"application/merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/strategic-merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/apply-patch+yaml"); //consumes + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PATCH"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_t *elementToReturn = v1_validating_admission_policy_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + list_freeList(localVarContentType); + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + if(keyQuery_force){ + free(keyQuery_force); + keyQuery_force = NULL; + } + if(valueQuery_force){ + free(valueQuery_force); + valueQuery_force = NULL; + } + if(keyPairQuery_force){ + keyValuePair_free(keyPairQuery_force); + keyPairQuery_force = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// partially update the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* +AdmissionregistrationV1API_patchValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = list_createList(); + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // query parameters + char *keyQuery_force = NULL; + char * valueQuery_force = NULL; + keyValuePair_t *keyPairQuery_force = 0; + if (force) + { + keyQuery_force = strdup("force"); + valueQuery_force = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_force, MAX_NUMBER_LENGTH, "%d", *force); + keyPairQuery_force = keyValuePair_create(keyQuery_force, valueQuery_force); + list_addElement(localVarQueryParameters,keyPairQuery_force); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = object_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarContentType,"application/json-patch+json"); //consumes + list_addElement(localVarContentType,"application/merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/strategic-merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/apply-patch+yaml"); //consumes + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PATCH"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_binding_t *elementToReturn = v1_validating_admission_policy_binding_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + list_freeList(localVarContentType); + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + if(keyQuery_force){ + free(keyQuery_force); + keyQuery_force = NULL; + } + if(valueQuery_force){ + free(valueQuery_force); + valueQuery_force = NULL; + } + if(keyPairQuery_force){ + keyValuePair_free(keyPairQuery_force); + keyPairQuery_force = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// partially update status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_patchValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = list_createList(); + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // query parameters + char *keyQuery_force = NULL; + char * valueQuery_force = NULL; + keyValuePair_t *keyPairQuery_force = 0; + if (force) + { + keyQuery_force = strdup("force"); + valueQuery_force = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_force, MAX_NUMBER_LENGTH, "%d", *force); + keyPairQuery_force = keyValuePair_create(keyQuery_force, valueQuery_force); + list_addElement(localVarQueryParameters,keyPairQuery_force); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = object_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarContentType,"application/json-patch+json"); //consumes + list_addElement(localVarContentType,"application/merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/strategic-merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/apply-patch+yaml"); //consumes + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PATCH"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_t *elementToReturn = v1_validating_admission_policy_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + list_freeList(localVarContentType); + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + if(keyQuery_force){ + free(keyQuery_force); + keyQuery_force = NULL; + } + if(valueQuery_force){ + free(valueQuery_force); + valueQuery_force = NULL; + } + if(keyPairQuery_force){ + keyValuePair_free(keyPairQuery_force); + keyPairQuery_force = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // partially update the specified ValidatingWebhookConfiguration // v1_validating_webhook_configuration_t* @@ -2901,6 +5842,312 @@ end: } +// read the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_readValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, char *pretty) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_t *elementToReturn = v1_validating_admission_policy_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// read the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* +AdmissionregistrationV1API_readValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, char *pretty) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_binding_t *elementToReturn = v1_validating_admission_policy_binding_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// read status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_readValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, char *pretty) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_t *elementToReturn = v1_validating_admission_policy_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // read the specified ValidatingWebhookConfiguration // v1_validating_webhook_configuration_t* @@ -3195,6 +6442,582 @@ end: } +// replace the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_replaceValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_validating_admission_policy_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PUT"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_t *elementToReturn = v1_validating_admission_policy_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// replace the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* +AdmissionregistrationV1API_replaceValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, v1_validating_admission_policy_binding_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_validating_admission_policy_binding_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PUT"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_binding_t *elementToReturn = v1_validating_admission_policy_binding_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// replace status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_replaceValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_validating_admission_policy_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PUT"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *AdmissionregistrationV1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_validating_admission_policy_t *elementToReturn = v1_validating_admission_policy_parseFromJSON(AdmissionregistrationV1APIlocalVarJSON); + cJSON_Delete(AdmissionregistrationV1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // replace the specified ValidatingWebhookConfiguration // v1_validating_webhook_configuration_t* diff --git a/kubernetes/api/AdmissionregistrationV1API.h b/kubernetes/api/AdmissionregistrationV1API.h index 883ea87..a8fd80b 100644 --- a/kubernetes/api/AdmissionregistrationV1API.h +++ b/kubernetes/api/AdmissionregistrationV1API.h @@ -11,6 +11,10 @@ #include "../model/v1_mutating_webhook_configuration.h" #include "../model/v1_mutating_webhook_configuration_list.h" #include "../model/v1_status.h" +#include "../model/v1_validating_admission_policy.h" +#include "../model/v1_validating_admission_policy_binding.h" +#include "../model/v1_validating_admission_policy_binding_list.h" +#include "../model/v1_validating_admission_policy_list.h" #include "../model/v1_validating_webhook_configuration.h" #include "../model/v1_validating_webhook_configuration_list.h" @@ -21,6 +25,18 @@ v1_mutating_webhook_configuration_t* AdmissionregistrationV1API_createMutatingWebhookConfiguration(apiClient_t *apiClient, v1_mutating_webhook_configuration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +// create a ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_createValidatingAdmissionPolicy(apiClient_t *apiClient, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + +// create a ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* +AdmissionregistrationV1API_createValidatingAdmissionPolicyBinding(apiClient_t *apiClient, v1_validating_admission_policy_binding_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + // create a ValidatingWebhookConfiguration // v1_validating_webhook_configuration_t* @@ -33,6 +49,18 @@ v1_status_t* AdmissionregistrationV1API_deleteCollectionMutatingWebhookConfiguration(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +// delete collection of ValidatingAdmissionPolicy +// +v1_status_t* +AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicy(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); + + +// delete collection of ValidatingAdmissionPolicyBinding +// +v1_status_t* +AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); + + // delete collection of ValidatingWebhookConfiguration // v1_status_t* @@ -45,6 +73,18 @@ v1_status_t* AdmissionregistrationV1API_deleteMutatingWebhookConfiguration(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +// delete a ValidatingAdmissionPolicy +// +v1_status_t* +AdmissionregistrationV1API_deleteValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); + + +// delete a ValidatingAdmissionPolicyBinding +// +v1_status_t* +AdmissionregistrationV1API_deleteValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); + + // delete a ValidatingWebhookConfiguration // v1_status_t* @@ -63,6 +103,18 @@ v1_mutating_webhook_configuration_list_t* AdmissionregistrationV1API_listMutatingWebhookConfiguration(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +// list or watch objects of kind ValidatingAdmissionPolicy +// +v1_validating_admission_policy_list_t* +AdmissionregistrationV1API_listValidatingAdmissionPolicy(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); + + +// list or watch objects of kind ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_list_t* +AdmissionregistrationV1API_listValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); + + // list or watch objects of kind ValidatingWebhookConfiguration // v1_validating_webhook_configuration_list_t* @@ -75,6 +127,24 @@ v1_mutating_webhook_configuration_t* AdmissionregistrationV1API_patchMutatingWebhookConfiguration(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +// partially update the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_patchValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); + + +// partially update the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* +AdmissionregistrationV1API_patchValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); + + +// partially update status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_patchValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); + + // partially update the specified ValidatingWebhookConfiguration // v1_validating_webhook_configuration_t* @@ -87,6 +157,24 @@ v1_mutating_webhook_configuration_t* AdmissionregistrationV1API_readMutatingWebhookConfiguration(apiClient_t *apiClient, char *name, char *pretty); +// read the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_readValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, char *pretty); + + +// read the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* +AdmissionregistrationV1API_readValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, char *pretty); + + +// read status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_readValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, char *pretty); + + // read the specified ValidatingWebhookConfiguration // v1_validating_webhook_configuration_t* @@ -99,6 +187,24 @@ v1_mutating_webhook_configuration_t* AdmissionregistrationV1API_replaceMutatingWebhookConfiguration(apiClient_t *apiClient, char *name, v1_mutating_webhook_configuration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +// replace the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_replaceValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + +// replace the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* +AdmissionregistrationV1API_replaceValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, v1_validating_admission_policy_binding_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + +// replace status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* +AdmissionregistrationV1API_replaceValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + // replace the specified ValidatingWebhookConfiguration // v1_validating_webhook_configuration_t* diff --git a/kubernetes/api/ResourceV1alpha2API.c b/kubernetes/api/ResourceV1alpha2API.c index af60c83..48265c7 100644 --- a/kubernetes/api/ResourceV1alpha2API.c +++ b/kubernetes/api/ResourceV1alpha2API.c @@ -404,6 +404,202 @@ end: } +// create ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_createNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, v1alpha2_resource_claim_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters"); + + + // Path Params + long sizeOfPathParams__namespace = strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha2_resource_claim_parameters_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "POST"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_claim_parameters_t *elementToReturn = v1alpha2_resource_claim_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // create a ResourceClaimTemplate // v1alpha2_resource_claim_template_t* @@ -600,6 +796,202 @@ end: } +// create ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_createNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, v1alpha2_resource_class_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters"); + + + // Path Params + long sizeOfPathParams__namespace = strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha2_resource_class_parameters_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "POST"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_class_parameters_t *elementToReturn = v1alpha2_resource_class_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // create a ResourceClass // v1alpha2_resource_class_t* @@ -785,6 +1177,191 @@ end: } +// create a ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_createResourceSlice(apiClient_t *apiClient, v1alpha2_resource_slice_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceslices")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceslices"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha2_resource_slice_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "POST"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_slice_t *elementToReturn = v1alpha2_resource_slice_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // delete collection of PodSchedulingContext // v1_status_t* @@ -1603,6 +2180,415 @@ end: } +// delete collection of ResourceClaimParameters +// +v1_status_t* +ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters"); + + + // Path Params + long sizeOfPathParams__namespace = strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // delete collection of ResourceClaimTemplate // v1_status_t* @@ -2012,6 +2998,415 @@ end: } +// delete collection of ResourceClassParameters +// +v1_status_t* +ResourceV1alpha2API_deleteCollectionNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters"); + + + // Path Params + long sizeOfPathParams__namespace = strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // delete collection of ResourceClass // v1_status_t* @@ -2410,6 +3805,404 @@ end: } +// delete collection of ResourceSlice +// +v1_status_t* +ResourceV1alpha2API_deleteCollectionResourceSlice(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceslices")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceslices"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // delete a PodSchedulingContext // v1alpha2_pod_scheduling_context_t* @@ -2868,6 +4661,235 @@ end: } +// delete ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_deleteNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + // Path Params + long sizeOfPathParams__namespace = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_claim_parameters_t *elementToReturn = v1alpha2_resource_claim_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // delete a ResourceClaimTemplate // v1alpha2_resource_claim_template_t* @@ -3097,6 +5119,235 @@ end: } +// delete ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_deleteNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + // Path Params + long sizeOfPathParams__namespace = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_class_parameters_t *elementToReturn = v1alpha2_resource_class_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // delete a ResourceClass // v1alpha2_resource_class_t* @@ -3315,6 +5566,224 @@ end: } +// delete a ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_deleteResourceSlice(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceslices/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceslices/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_slice_t *elementToReturn = v1alpha2_resource_slice_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // get available resources // v1_api_resource_list_t* @@ -4080,6 +6549,355 @@ end: } +// list or watch objects of kind ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_list_t* +ResourceV1alpha2API_listNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters"); + + + // Path Params + long sizeOfPathParams__namespace = strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_allowWatchBookmarks = NULL; + char * valueQuery_allowWatchBookmarks = NULL; + keyValuePair_t *keyPairQuery_allowWatchBookmarks = 0; + if (allowWatchBookmarks) + { + keyQuery_allowWatchBookmarks = strdup("allowWatchBookmarks"); + valueQuery_allowWatchBookmarks = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_allowWatchBookmarks, MAX_NUMBER_LENGTH, "%d", *allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = keyValuePair_create(keyQuery_allowWatchBookmarks, valueQuery_allowWatchBookmarks); + list_addElement(localVarQueryParameters,keyPairQuery_allowWatchBookmarks); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // query parameters + char *keyQuery_watch = NULL; + char * valueQuery_watch = NULL; + keyValuePair_t *keyPairQuery_watch = 0; + if (watch) + { + keyQuery_watch = strdup("watch"); + valueQuery_watch = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_watch, MAX_NUMBER_LENGTH, "%d", *watch); + keyPairQuery_watch = keyValuePair_create(keyQuery_watch, valueQuery_watch); + list_addElement(localVarQueryParameters,keyPairQuery_watch); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarHeaderType,"application/json;stream=watch"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf;stream=watch"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_claim_parameters_list_t *elementToReturn = v1alpha2_resource_claim_parameters_list_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace__namespace); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_allowWatchBookmarks){ + free(keyQuery_allowWatchBookmarks); + keyQuery_allowWatchBookmarks = NULL; + } + if(valueQuery_allowWatchBookmarks){ + free(valueQuery_allowWatchBookmarks); + valueQuery_allowWatchBookmarks = NULL; + } + if(keyPairQuery_allowWatchBookmarks){ + keyValuePair_free(keyPairQuery_allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + if(keyQuery_watch){ + free(keyQuery_watch); + keyQuery_watch = NULL; + } + if(valueQuery_watch){ + free(valueQuery_watch); + valueQuery_watch = NULL; + } + if(keyPairQuery_watch){ + keyValuePair_free(keyPairQuery_watch); + keyPairQuery_watch = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // list or watch objects of kind ResourceClaimTemplate // v1alpha2_resource_claim_template_list_t* @@ -4429,6 +7247,355 @@ end: } +// list or watch objects of kind ResourceClassParameters +// +v1alpha2_resource_class_parameters_list_t* +ResourceV1alpha2API_listNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters"); + + + // Path Params + long sizeOfPathParams__namespace = strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_allowWatchBookmarks = NULL; + char * valueQuery_allowWatchBookmarks = NULL; + keyValuePair_t *keyPairQuery_allowWatchBookmarks = 0; + if (allowWatchBookmarks) + { + keyQuery_allowWatchBookmarks = strdup("allowWatchBookmarks"); + valueQuery_allowWatchBookmarks = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_allowWatchBookmarks, MAX_NUMBER_LENGTH, "%d", *allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = keyValuePair_create(keyQuery_allowWatchBookmarks, valueQuery_allowWatchBookmarks); + list_addElement(localVarQueryParameters,keyPairQuery_allowWatchBookmarks); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // query parameters + char *keyQuery_watch = NULL; + char * valueQuery_watch = NULL; + keyValuePair_t *keyPairQuery_watch = 0; + if (watch) + { + keyQuery_watch = strdup("watch"); + valueQuery_watch = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_watch, MAX_NUMBER_LENGTH, "%d", *watch); + keyPairQuery_watch = keyValuePair_create(keyQuery_watch, valueQuery_watch); + list_addElement(localVarQueryParameters,keyPairQuery_watch); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarHeaderType,"application/json;stream=watch"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf;stream=watch"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_class_parameters_list_t *elementToReturn = v1alpha2_resource_class_parameters_list_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace__namespace); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_allowWatchBookmarks){ + free(keyQuery_allowWatchBookmarks); + keyQuery_allowWatchBookmarks = NULL; + } + if(valueQuery_allowWatchBookmarks){ + free(valueQuery_allowWatchBookmarks); + valueQuery_allowWatchBookmarks = NULL; + } + if(keyPairQuery_allowWatchBookmarks){ + keyValuePair_free(keyPairQuery_allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + if(keyQuery_watch){ + free(keyQuery_watch); + keyQuery_watch = NULL; + } + if(valueQuery_watch){ + free(valueQuery_watch); + valueQuery_watch = NULL; + } + if(keyPairQuery_watch){ + keyValuePair_free(keyPairQuery_watch); + keyPairQuery_watch = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // list or watch objects of kind PodSchedulingContext // v1alpha2_pod_scheduling_context_list_t* @@ -5105,6 +8272,344 @@ end: } +// list or watch objects of kind ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_list_t* +ResourceV1alpha2API_listResourceClaimParametersForAllNamespaces(apiClient_t *apiClient, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *pretty, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceclaimparameters")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceclaimparameters"); + + + + + // query parameters + char *keyQuery_allowWatchBookmarks = NULL; + char * valueQuery_allowWatchBookmarks = NULL; + keyValuePair_t *keyPairQuery_allowWatchBookmarks = 0; + if (allowWatchBookmarks) + { + keyQuery_allowWatchBookmarks = strdup("allowWatchBookmarks"); + valueQuery_allowWatchBookmarks = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_allowWatchBookmarks, MAX_NUMBER_LENGTH, "%d", *allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = keyValuePair_create(keyQuery_allowWatchBookmarks, valueQuery_allowWatchBookmarks); + list_addElement(localVarQueryParameters,keyPairQuery_allowWatchBookmarks); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // query parameters + char *keyQuery_watch = NULL; + char * valueQuery_watch = NULL; + keyValuePair_t *keyPairQuery_watch = 0; + if (watch) + { + keyQuery_watch = strdup("watch"); + valueQuery_watch = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_watch, MAX_NUMBER_LENGTH, "%d", *watch); + keyPairQuery_watch = keyValuePair_create(keyQuery_watch, valueQuery_watch); + list_addElement(localVarQueryParameters,keyPairQuery_watch); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarHeaderType,"application/json;stream=watch"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf;stream=watch"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_claim_parameters_list_t *elementToReturn = v1alpha2_resource_claim_parameters_list_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if(keyQuery_allowWatchBookmarks){ + free(keyQuery_allowWatchBookmarks); + keyQuery_allowWatchBookmarks = NULL; + } + if(valueQuery_allowWatchBookmarks){ + free(valueQuery_allowWatchBookmarks); + valueQuery_allowWatchBookmarks = NULL; + } + if(keyPairQuery_allowWatchBookmarks){ + keyValuePair_free(keyPairQuery_allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + if(keyQuery_watch){ + free(keyQuery_watch); + keyQuery_watch = NULL; + } + if(valueQuery_watch){ + free(valueQuery_watch); + valueQuery_watch = NULL; + } + if(keyPairQuery_watch){ + keyValuePair_free(keyPairQuery_watch); + keyPairQuery_watch = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // list or watch objects of kind ResourceClaimTemplate // v1alpha2_resource_claim_template_list_t* @@ -5781,6 +9286,682 @@ end: } +// list or watch objects of kind ResourceClassParameters +// +v1alpha2_resource_class_parameters_list_t* +ResourceV1alpha2API_listResourceClassParametersForAllNamespaces(apiClient_t *apiClient, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *pretty, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceclassparameters")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceclassparameters"); + + + + + // query parameters + char *keyQuery_allowWatchBookmarks = NULL; + char * valueQuery_allowWatchBookmarks = NULL; + keyValuePair_t *keyPairQuery_allowWatchBookmarks = 0; + if (allowWatchBookmarks) + { + keyQuery_allowWatchBookmarks = strdup("allowWatchBookmarks"); + valueQuery_allowWatchBookmarks = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_allowWatchBookmarks, MAX_NUMBER_LENGTH, "%d", *allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = keyValuePair_create(keyQuery_allowWatchBookmarks, valueQuery_allowWatchBookmarks); + list_addElement(localVarQueryParameters,keyPairQuery_allowWatchBookmarks); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // query parameters + char *keyQuery_watch = NULL; + char * valueQuery_watch = NULL; + keyValuePair_t *keyPairQuery_watch = 0; + if (watch) + { + keyQuery_watch = strdup("watch"); + valueQuery_watch = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_watch, MAX_NUMBER_LENGTH, "%d", *watch); + keyPairQuery_watch = keyValuePair_create(keyQuery_watch, valueQuery_watch); + list_addElement(localVarQueryParameters,keyPairQuery_watch); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarHeaderType,"application/json;stream=watch"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf;stream=watch"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_class_parameters_list_t *elementToReturn = v1alpha2_resource_class_parameters_list_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if(keyQuery_allowWatchBookmarks){ + free(keyQuery_allowWatchBookmarks); + keyQuery_allowWatchBookmarks = NULL; + } + if(valueQuery_allowWatchBookmarks){ + free(valueQuery_allowWatchBookmarks); + valueQuery_allowWatchBookmarks = NULL; + } + if(keyPairQuery_allowWatchBookmarks){ + keyValuePair_free(keyPairQuery_allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + if(keyQuery_watch){ + free(keyQuery_watch); + keyQuery_watch = NULL; + } + if(valueQuery_watch){ + free(valueQuery_watch); + valueQuery_watch = NULL; + } + if(keyPairQuery_watch){ + keyValuePair_free(keyPairQuery_watch); + keyPairQuery_watch = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// list or watch objects of kind ResourceSlice +// +v1alpha2_resource_slice_list_t* +ResourceV1alpha2API_listResourceSlice(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceslices")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceslices"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_allowWatchBookmarks = NULL; + char * valueQuery_allowWatchBookmarks = NULL; + keyValuePair_t *keyPairQuery_allowWatchBookmarks = 0; + if (allowWatchBookmarks) + { + keyQuery_allowWatchBookmarks = strdup("allowWatchBookmarks"); + valueQuery_allowWatchBookmarks = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_allowWatchBookmarks, MAX_NUMBER_LENGTH, "%d", *allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = keyValuePair_create(keyQuery_allowWatchBookmarks, valueQuery_allowWatchBookmarks); + list_addElement(localVarQueryParameters,keyPairQuery_allowWatchBookmarks); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // query parameters + char *keyQuery_watch = NULL; + char * valueQuery_watch = NULL; + keyValuePair_t *keyPairQuery_watch = 0; + if (watch) + { + keyQuery_watch = strdup("watch"); + valueQuery_watch = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_watch, MAX_NUMBER_LENGTH, "%d", *watch); + keyPairQuery_watch = keyValuePair_create(keyQuery_watch, valueQuery_watch); + list_addElement(localVarQueryParameters,keyPairQuery_watch); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarHeaderType,"application/json;stream=watch"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf;stream=watch"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_slice_list_t *elementToReturn = v1alpha2_resource_slice_list_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_allowWatchBookmarks){ + free(keyQuery_allowWatchBookmarks); + keyQuery_allowWatchBookmarks = NULL; + } + if(valueQuery_allowWatchBookmarks){ + free(valueQuery_allowWatchBookmarks); + valueQuery_allowWatchBookmarks = NULL; + } + if(keyPairQuery_allowWatchBookmarks){ + keyValuePair_free(keyPairQuery_allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + if(keyQuery_watch){ + free(keyQuery_watch); + keyQuery_watch = NULL; + } + if(valueQuery_watch){ + free(valueQuery_watch); + valueQuery_watch = NULL; + } + if(keyPairQuery_watch){ + keyValuePair_free(keyPairQuery_watch); + keyPairQuery_watch = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // partially update the specified PodSchedulingContext // v1alpha2_pod_scheduling_context_t* @@ -6477,6 +10658,238 @@ end: } +// partially update the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_patchNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = list_createList(); + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + // Path Params + long sizeOfPathParams__namespace = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // query parameters + char *keyQuery_force = NULL; + char * valueQuery_force = NULL; + keyValuePair_t *keyPairQuery_force = 0; + if (force) + { + keyQuery_force = strdup("force"); + valueQuery_force = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_force, MAX_NUMBER_LENGTH, "%d", *force); + keyPairQuery_force = keyValuePair_create(keyQuery_force, valueQuery_force); + list_addElement(localVarQueryParameters,keyPairQuery_force); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = object_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarContentType,"application/json-patch+json"); //consumes + list_addElement(localVarContentType,"application/merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/strategic-merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/apply-patch+yaml"); //consumes + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PATCH"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_claim_parameters_t *elementToReturn = v1alpha2_resource_claim_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + list_freeList(localVarContentType); + free(localVarPath); + free(localVarToReplace_name); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + if(keyQuery_force){ + free(keyQuery_force); + keyQuery_force = NULL; + } + if(valueQuery_force){ + free(valueQuery_force); + valueQuery_force = NULL; + } + if(keyPairQuery_force){ + keyValuePair_free(keyPairQuery_force); + keyPairQuery_force = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // partially update status of the specified ResourceClaim // v1alpha2_resource_claim_t* @@ -6941,6 +11354,238 @@ end: } +// partially update the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_patchNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = list_createList(); + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + // Path Params + long sizeOfPathParams__namespace = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // query parameters + char *keyQuery_force = NULL; + char * valueQuery_force = NULL; + keyValuePair_t *keyPairQuery_force = 0; + if (force) + { + keyQuery_force = strdup("force"); + valueQuery_force = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_force, MAX_NUMBER_LENGTH, "%d", *force); + keyPairQuery_force = keyValuePair_create(keyQuery_force, valueQuery_force); + list_addElement(localVarQueryParameters,keyPairQuery_force); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = object_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarContentType,"application/json-patch+json"); //consumes + list_addElement(localVarContentType,"application/merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/strategic-merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/apply-patch+yaml"); //consumes + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PATCH"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_class_parameters_t *elementToReturn = v1alpha2_resource_class_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + list_freeList(localVarContentType); + free(localVarPath); + free(localVarToReplace_name); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + if(keyQuery_force){ + free(keyQuery_force); + keyQuery_force = NULL; + } + if(valueQuery_force){ + free(valueQuery_force); + valueQuery_force = NULL; + } + if(keyPairQuery_force){ + keyValuePair_free(keyPairQuery_force); + keyPairQuery_force = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // partially update the specified ResourceClass // v1alpha2_resource_class_t* @@ -7162,6 +11807,227 @@ end: } +// partially update the specified ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_patchResourceSlice(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = list_createList(); + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceslices/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceslices/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // query parameters + char *keyQuery_force = NULL; + char * valueQuery_force = NULL; + keyValuePair_t *keyPairQuery_force = 0; + if (force) + { + keyQuery_force = strdup("force"); + valueQuery_force = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_force, MAX_NUMBER_LENGTH, "%d", *force); + keyPairQuery_force = keyValuePair_create(keyQuery_force, valueQuery_force); + list_addElement(localVarQueryParameters,keyPairQuery_force); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = object_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarContentType,"application/json-patch+json"); //consumes + list_addElement(localVarContentType,"application/merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/strategic-merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/apply-patch+yaml"); //consumes + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PATCH"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_slice_t *elementToReturn = v1alpha2_resource_slice_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + list_freeList(localVarContentType); + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + if(keyQuery_force){ + free(keyQuery_force); + keyQuery_force = NULL; + } + if(valueQuery_force){ + free(valueQuery_force); + valueQuery_force = NULL; + } + if(keyPairQuery_force){ + keyValuePair_free(keyPairQuery_force); + keyPairQuery_force = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // read the specified PodSchedulingContext // v1alpha2_pod_scheduling_context_t* @@ -7501,6 +12367,119 @@ end: } +// read the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_readNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + // Path Params + long sizeOfPathParams__namespace = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_claim_parameters_t *elementToReturn = v1alpha2_resource_claim_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + free(localVarToReplace__namespace); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // read status of the specified ResourceClaim // v1alpha2_resource_claim_t* @@ -7727,6 +12706,119 @@ end: } +// read the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_readNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + // Path Params + long sizeOfPathParams__namespace = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_class_parameters_t *elementToReturn = v1alpha2_resource_class_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + free(localVarToReplace__namespace); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // read the specified ResourceClass // v1alpha2_resource_class_t* @@ -7829,6 +12921,108 @@ end: } +// read the specified ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_readResourceSlice(apiClient_t *apiClient, char *name, char *pretty) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceslices/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceslices/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_slice_t *elementToReturn = v1alpha2_resource_slice_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // replace the specified PodSchedulingContext // v1alpha2_pod_scheduling_context_t* @@ -8438,6 +13632,209 @@ end: } +// replace the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_replaceNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, v1alpha2_resource_claim_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + // Path Params + long sizeOfPathParams__namespace = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha2_resource_claim_parameters_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PUT"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_claim_parameters_t *elementToReturn = v1alpha2_resource_claim_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // replace status of the specified ResourceClaim // v1alpha2_resource_claim_t* @@ -8844,6 +14241,209 @@ end: } +// replace the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_replaceNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, v1alpha2_resource_class_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + // Path Params + long sizeOfPathParams__namespace = strlen(name)+3 + strlen(_namespace)+3 + strlen("{ namespace }"); + if(_namespace == NULL) { + goto end; + } + char* localVarToReplace__namespace = malloc(sizeOfPathParams__namespace); + sprintf(localVarToReplace__namespace, "{%s}", "namespace"); + + localVarPath = strReplace(localVarPath, localVarToReplace__namespace, _namespace); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha2_resource_class_parameters_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PUT"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_class_parameters_t *elementToReturn = v1alpha2_resource_class_parameters_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + free(localVarToReplace__namespace); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + // replace the specified ResourceClass // v1alpha2_resource_class_t* @@ -9036,3 +14636,195 @@ end: } +// replace the specified ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_replaceResourceSlice(apiClient_t *apiClient, char *name, v1alpha2_resource_slice_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/resource.k8s.io/v1alpha2/resourceslices/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/resource.k8s.io/v1alpha2/resourceslices/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha2_resource_slice_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PUT"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *ResourceV1alpha2APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha2_resource_slice_t *elementToReturn = v1alpha2_resource_slice_parseFromJSON(ResourceV1alpha2APIlocalVarJSON); + cJSON_Delete(ResourceV1alpha2APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + diff --git a/kubernetes/api/ResourceV1alpha2API.h b/kubernetes/api/ResourceV1alpha2API.h index c4912dd..10a88df 100644 --- a/kubernetes/api/ResourceV1alpha2API.h +++ b/kubernetes/api/ResourceV1alpha2API.h @@ -13,10 +13,16 @@ #include "../model/v1alpha2_pod_scheduling_context_list.h" #include "../model/v1alpha2_resource_claim.h" #include "../model/v1alpha2_resource_claim_list.h" +#include "../model/v1alpha2_resource_claim_parameters.h" +#include "../model/v1alpha2_resource_claim_parameters_list.h" #include "../model/v1alpha2_resource_claim_template.h" #include "../model/v1alpha2_resource_claim_template_list.h" #include "../model/v1alpha2_resource_class.h" #include "../model/v1alpha2_resource_class_list.h" +#include "../model/v1alpha2_resource_class_parameters.h" +#include "../model/v1alpha2_resource_class_parameters_list.h" +#include "../model/v1alpha2_resource_slice.h" +#include "../model/v1alpha2_resource_slice_list.h" // create a PodSchedulingContext @@ -31,18 +37,36 @@ v1alpha2_resource_claim_t* ResourceV1alpha2API_createNamespacedResourceClaim(apiClient_t *apiClient, char *_namespace, v1alpha2_resource_claim_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +// create ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_createNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, v1alpha2_resource_claim_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + // create a ResourceClaimTemplate // v1alpha2_resource_claim_template_t* ResourceV1alpha2API_createNamespacedResourceClaimTemplate(apiClient_t *apiClient, char *_namespace, v1alpha2_resource_claim_template_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +// create ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_createNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, v1alpha2_resource_class_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + // create a ResourceClass // v1alpha2_resource_class_t* ResourceV1alpha2API_createResourceClass(apiClient_t *apiClient, v1alpha2_resource_class_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +// create a ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_createResourceSlice(apiClient_t *apiClient, v1alpha2_resource_slice_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + // delete collection of PodSchedulingContext // v1_status_t* @@ -55,18 +79,36 @@ v1_status_t* ResourceV1alpha2API_deleteCollectionNamespacedResourceClaim(apiClient_t *apiClient, char *_namespace, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +// delete collection of ResourceClaimParameters +// +v1_status_t* +ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); + + // delete collection of ResourceClaimTemplate // v1_status_t* ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimTemplate(apiClient_t *apiClient, char *_namespace, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +// delete collection of ResourceClassParameters +// +v1_status_t* +ResourceV1alpha2API_deleteCollectionNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); + + // delete collection of ResourceClass // v1_status_t* ResourceV1alpha2API_deleteCollectionResourceClass(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +// delete collection of ResourceSlice +// +v1_status_t* +ResourceV1alpha2API_deleteCollectionResourceSlice(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); + + // delete a PodSchedulingContext // v1alpha2_pod_scheduling_context_t* @@ -79,18 +121,36 @@ v1alpha2_resource_claim_t* ResourceV1alpha2API_deleteNamespacedResourceClaim(apiClient_t *apiClient, char *name, char *_namespace, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +// delete ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_deleteNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); + + // delete a ResourceClaimTemplate // v1alpha2_resource_claim_template_t* ResourceV1alpha2API_deleteNamespacedResourceClaimTemplate(apiClient_t *apiClient, char *name, char *_namespace, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +// delete ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_deleteNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); + + // delete a ResourceClass // v1alpha2_resource_class_t* ResourceV1alpha2API_deleteResourceClass(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +// delete a ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_deleteResourceSlice(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); + + // get available resources // v1_api_resource_list_t* @@ -109,12 +169,24 @@ v1alpha2_resource_claim_list_t* ResourceV1alpha2API_listNamespacedResourceClaim(apiClient_t *apiClient, char *_namespace, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +// list or watch objects of kind ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_list_t* +ResourceV1alpha2API_listNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); + + // list or watch objects of kind ResourceClaimTemplate // v1alpha2_resource_claim_template_list_t* ResourceV1alpha2API_listNamespacedResourceClaimTemplate(apiClient_t *apiClient, char *_namespace, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +// list or watch objects of kind ResourceClassParameters +// +v1alpha2_resource_class_parameters_list_t* +ResourceV1alpha2API_listNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); + + // list or watch objects of kind PodSchedulingContext // v1alpha2_pod_scheduling_context_list_t* @@ -127,6 +199,12 @@ v1alpha2_resource_claim_list_t* ResourceV1alpha2API_listResourceClaimForAllNamespaces(apiClient_t *apiClient, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *pretty, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +// list or watch objects of kind ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_list_t* +ResourceV1alpha2API_listResourceClaimParametersForAllNamespaces(apiClient_t *apiClient, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *pretty, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); + + // list or watch objects of kind ResourceClaimTemplate // v1alpha2_resource_claim_template_list_t* @@ -139,6 +217,18 @@ v1alpha2_resource_class_list_t* ResourceV1alpha2API_listResourceClass(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +// list or watch objects of kind ResourceClassParameters +// +v1alpha2_resource_class_parameters_list_t* +ResourceV1alpha2API_listResourceClassParametersForAllNamespaces(apiClient_t *apiClient, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *pretty, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); + + +// list or watch objects of kind ResourceSlice +// +v1alpha2_resource_slice_list_t* +ResourceV1alpha2API_listResourceSlice(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); + + // partially update the specified PodSchedulingContext // v1alpha2_pod_scheduling_context_t* @@ -157,6 +247,12 @@ v1alpha2_resource_claim_t* ResourceV1alpha2API_patchNamespacedResourceClaim(apiClient_t *apiClient, char *name, char *_namespace, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +// partially update the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_patchNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); + + // partially update status of the specified ResourceClaim // v1alpha2_resource_claim_t* @@ -169,12 +265,24 @@ v1alpha2_resource_claim_template_t* ResourceV1alpha2API_patchNamespacedResourceClaimTemplate(apiClient_t *apiClient, char *name, char *_namespace, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +// partially update the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_patchNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); + + // partially update the specified ResourceClass // v1alpha2_resource_class_t* ResourceV1alpha2API_patchResourceClass(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +// partially update the specified ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_patchResourceSlice(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); + + // read the specified PodSchedulingContext // v1alpha2_pod_scheduling_context_t* @@ -193,6 +301,12 @@ v1alpha2_resource_claim_t* ResourceV1alpha2API_readNamespacedResourceClaim(apiClient_t *apiClient, char *name, char *_namespace, char *pretty); +// read the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_readNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty); + + // read status of the specified ResourceClaim // v1alpha2_resource_claim_t* @@ -205,12 +319,24 @@ v1alpha2_resource_claim_template_t* ResourceV1alpha2API_readNamespacedResourceClaimTemplate(apiClient_t *apiClient, char *name, char *_namespace, char *pretty); +// read the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_readNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty); + + // read the specified ResourceClass // v1alpha2_resource_class_t* ResourceV1alpha2API_readResourceClass(apiClient_t *apiClient, char *name, char *pretty); +// read the specified ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_readResourceSlice(apiClient_t *apiClient, char *name, char *pretty); + + // replace the specified PodSchedulingContext // v1alpha2_pod_scheduling_context_t* @@ -229,6 +355,12 @@ v1alpha2_resource_claim_t* ResourceV1alpha2API_replaceNamespacedResourceClaim(apiClient_t *apiClient, char *name, char *_namespace, v1alpha2_resource_claim_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +// replace the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* +ResourceV1alpha2API_replaceNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, v1alpha2_resource_claim_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + // replace status of the specified ResourceClaim // v1alpha2_resource_claim_t* @@ -241,9 +373,21 @@ v1alpha2_resource_claim_template_t* ResourceV1alpha2API_replaceNamespacedResourceClaimTemplate(apiClient_t *apiClient, char *name, char *_namespace, v1alpha2_resource_claim_template_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +// replace the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* +ResourceV1alpha2API_replaceNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, v1alpha2_resource_class_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + // replace the specified ResourceClass // v1alpha2_resource_class_t* ResourceV1alpha2API_replaceResourceClass(apiClient_t *apiClient, char *name, v1alpha2_resource_class_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +// replace the specified ResourceSlice +// +v1alpha2_resource_slice_t* +ResourceV1alpha2API_replaceResourceSlice(apiClient_t *apiClient, char *name, v1alpha2_resource_slice_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + diff --git a/kubernetes/api/StoragemigrationAPI.c b/kubernetes/api/StoragemigrationAPI.c new file mode 100644 index 0000000..653fd26 --- /dev/null +++ b/kubernetes/api/StoragemigrationAPI.c @@ -0,0 +1,81 @@ +#include +#include +#include +#include "StoragemigrationAPI.h" + +#define MAX_NUMBER_LENGTH 16 +#define MAX_BUFFER_LENGTH 4096 +#define intToStr(dst, src) \ + do {\ + char dst[256];\ + snprintf(dst, 256, "%ld", (long int)(src));\ +}while(0) + + +// get information of a group +// +v1_api_group_t* +StoragemigrationAPI_getAPIGroup(apiClient_t *apiClient) +{ + list_t *localVarQueryParameters = NULL; + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/"); + + + + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationAPIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_api_group_t *elementToReturn = v1_api_group_parseFromJSON(StoragemigrationAPIlocalVarJSON); + cJSON_Delete(StoragemigrationAPIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + + + + list_freeList(localVarHeaderType); + + free(localVarPath); + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + diff --git a/kubernetes/api/StoragemigrationAPI.h b/kubernetes/api/StoragemigrationAPI.h new file mode 100644 index 0000000..1d08db4 --- /dev/null +++ b/kubernetes/api/StoragemigrationAPI.h @@ -0,0 +1,16 @@ +#include +#include +#include "../include/apiClient.h" +#include "../include/list.h" +#include "../external/cJSON.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" +#include "../model/v1_api_group.h" + + +// get information of a group +// +v1_api_group_t* +StoragemigrationAPI_getAPIGroup(apiClient_t *apiClient); + + diff --git a/kubernetes/api/StoragemigrationV1alpha1API.c b/kubernetes/api/StoragemigrationV1alpha1API.c new file mode 100644 index 0000000..f8a3d82 --- /dev/null +++ b/kubernetes/api/StoragemigrationV1alpha1API.c @@ -0,0 +1,2250 @@ +#include +#include +#include +#include "StoragemigrationV1alpha1API.h" + +#define MAX_NUMBER_LENGTH 16 +#define MAX_BUFFER_LENGTH 4096 +#define intToStr(dst, src) \ + do {\ + char dst[256];\ + snprintf(dst, 256, "%ld", (long int)(src));\ +}while(0) + + +// create a StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_createStorageVersionMigration(apiClient_t *apiClient, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha1_storage_version_migration_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "POST"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha1_storage_version_migration_t *elementToReturn = v1alpha1_storage_version_migration_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// delete collection of StorageVersionMigration +// +v1_status_t* +StoragemigrationV1alpha1API_deleteCollectionStorageVersionMigration(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// delete a StorageVersionMigration +// +v1_status_t* +StoragemigrationV1alpha1API_deleteStorageVersionMigration(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_gracePeriodSeconds = NULL; + char * valueQuery_gracePeriodSeconds = NULL; + keyValuePair_t *keyPairQuery_gracePeriodSeconds = 0; + if (gracePeriodSeconds) + { + keyQuery_gracePeriodSeconds = strdup("gracePeriodSeconds"); + valueQuery_gracePeriodSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_gracePeriodSeconds, MAX_NUMBER_LENGTH, "%d", *gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = keyValuePair_create(keyQuery_gracePeriodSeconds, valueQuery_gracePeriodSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_gracePeriodSeconds); + } + + // query parameters + char *keyQuery_orphanDependents = NULL; + char * valueQuery_orphanDependents = NULL; + keyValuePair_t *keyPairQuery_orphanDependents = 0; + if (orphanDependents) + { + keyQuery_orphanDependents = strdup("orphanDependents"); + valueQuery_orphanDependents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_orphanDependents, MAX_NUMBER_LENGTH, "%d", *orphanDependents); + keyPairQuery_orphanDependents = keyValuePair_create(keyQuery_orphanDependents, valueQuery_orphanDependents); + list_addElement(localVarQueryParameters,keyPairQuery_orphanDependents); + } + + // query parameters + char *keyQuery_propagationPolicy = NULL; + char * valueQuery_propagationPolicy = NULL; + keyValuePair_t *keyPairQuery_propagationPolicy = 0; + if (propagationPolicy) + { + keyQuery_propagationPolicy = strdup("propagationPolicy"); + valueQuery_propagationPolicy = strdup((propagationPolicy)); + keyPairQuery_propagationPolicy = keyValuePair_create(keyQuery_propagationPolicy, valueQuery_propagationPolicy); + list_addElement(localVarQueryParameters,keyPairQuery_propagationPolicy); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1_delete_options_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "DELETE"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 202) { + // printf("%s\n","Accepted"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_status_t *elementToReturn = v1_status_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_gracePeriodSeconds){ + free(keyQuery_gracePeriodSeconds); + keyQuery_gracePeriodSeconds = NULL; + } + if(valueQuery_gracePeriodSeconds){ + free(valueQuery_gracePeriodSeconds); + valueQuery_gracePeriodSeconds = NULL; + } + if(keyPairQuery_gracePeriodSeconds){ + keyValuePair_free(keyPairQuery_gracePeriodSeconds); + keyPairQuery_gracePeriodSeconds = NULL; + } + if(keyQuery_orphanDependents){ + free(keyQuery_orphanDependents); + keyQuery_orphanDependents = NULL; + } + if(valueQuery_orphanDependents){ + free(valueQuery_orphanDependents); + valueQuery_orphanDependents = NULL; + } + if(keyPairQuery_orphanDependents){ + keyValuePair_free(keyPairQuery_orphanDependents); + keyPairQuery_orphanDependents = NULL; + } + if(keyQuery_propagationPolicy){ + free(keyQuery_propagationPolicy); + keyQuery_propagationPolicy = NULL; + } + if(valueQuery_propagationPolicy){ + free(valueQuery_propagationPolicy); + valueQuery_propagationPolicy = NULL; + } + if(keyPairQuery_propagationPolicy){ + keyValuePair_free(keyPairQuery_propagationPolicy); + keyPairQuery_propagationPolicy = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// get available resources +// +v1_api_resource_list_t* +StoragemigrationV1alpha1API_getAPIResources(apiClient_t *apiClient) +{ + list_t *localVarQueryParameters = NULL; + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/"); + + + + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1_api_resource_list_t *elementToReturn = v1_api_resource_list_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + + + + list_freeList(localVarHeaderType); + + free(localVarPath); + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// list or watch objects of kind StorageVersionMigration +// +v1alpha1_storage_version_migration_list_t* +StoragemigrationV1alpha1API_listStorageVersionMigration(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations"); + + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_allowWatchBookmarks = NULL; + char * valueQuery_allowWatchBookmarks = NULL; + keyValuePair_t *keyPairQuery_allowWatchBookmarks = 0; + if (allowWatchBookmarks) + { + keyQuery_allowWatchBookmarks = strdup("allowWatchBookmarks"); + valueQuery_allowWatchBookmarks = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_allowWatchBookmarks, MAX_NUMBER_LENGTH, "%d", *allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = keyValuePair_create(keyQuery_allowWatchBookmarks, valueQuery_allowWatchBookmarks); + list_addElement(localVarQueryParameters,keyPairQuery_allowWatchBookmarks); + } + + // query parameters + char *keyQuery__continue = NULL; + char * valueQuery__continue = NULL; + keyValuePair_t *keyPairQuery__continue = 0; + if (_continue) + { + keyQuery__continue = strdup("continue"); + valueQuery__continue = strdup((_continue)); + keyPairQuery__continue = keyValuePair_create(keyQuery__continue, valueQuery__continue); + list_addElement(localVarQueryParameters,keyPairQuery__continue); + } + + // query parameters + char *keyQuery_fieldSelector = NULL; + char * valueQuery_fieldSelector = NULL; + keyValuePair_t *keyPairQuery_fieldSelector = 0; + if (fieldSelector) + { + keyQuery_fieldSelector = strdup("fieldSelector"); + valueQuery_fieldSelector = strdup((fieldSelector)); + keyPairQuery_fieldSelector = keyValuePair_create(keyQuery_fieldSelector, valueQuery_fieldSelector); + list_addElement(localVarQueryParameters,keyPairQuery_fieldSelector); + } + + // query parameters + char *keyQuery_labelSelector = NULL; + char * valueQuery_labelSelector = NULL; + keyValuePair_t *keyPairQuery_labelSelector = 0; + if (labelSelector) + { + keyQuery_labelSelector = strdup("labelSelector"); + valueQuery_labelSelector = strdup((labelSelector)); + keyPairQuery_labelSelector = keyValuePair_create(keyQuery_labelSelector, valueQuery_labelSelector); + list_addElement(localVarQueryParameters,keyPairQuery_labelSelector); + } + + // query parameters + char *keyQuery_limit = NULL; + char * valueQuery_limit = NULL; + keyValuePair_t *keyPairQuery_limit = 0; + if (limit) + { + keyQuery_limit = strdup("limit"); + valueQuery_limit = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_limit, MAX_NUMBER_LENGTH, "%d", *limit); + keyPairQuery_limit = keyValuePair_create(keyQuery_limit, valueQuery_limit); + list_addElement(localVarQueryParameters,keyPairQuery_limit); + } + + // query parameters + char *keyQuery_resourceVersion = NULL; + char * valueQuery_resourceVersion = NULL; + keyValuePair_t *keyPairQuery_resourceVersion = 0; + if (resourceVersion) + { + keyQuery_resourceVersion = strdup("resourceVersion"); + valueQuery_resourceVersion = strdup((resourceVersion)); + keyPairQuery_resourceVersion = keyValuePair_create(keyQuery_resourceVersion, valueQuery_resourceVersion); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersion); + } + + // query parameters + char *keyQuery_resourceVersionMatch = NULL; + char * valueQuery_resourceVersionMatch = NULL; + keyValuePair_t *keyPairQuery_resourceVersionMatch = 0; + if (resourceVersionMatch) + { + keyQuery_resourceVersionMatch = strdup("resourceVersionMatch"); + valueQuery_resourceVersionMatch = strdup((resourceVersionMatch)); + keyPairQuery_resourceVersionMatch = keyValuePair_create(keyQuery_resourceVersionMatch, valueQuery_resourceVersionMatch); + list_addElement(localVarQueryParameters,keyPairQuery_resourceVersionMatch); + } + + // query parameters + char *keyQuery_sendInitialEvents = NULL; + char * valueQuery_sendInitialEvents = NULL; + keyValuePair_t *keyPairQuery_sendInitialEvents = 0; + if (sendInitialEvents) + { + keyQuery_sendInitialEvents = strdup("sendInitialEvents"); + valueQuery_sendInitialEvents = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_sendInitialEvents, MAX_NUMBER_LENGTH, "%d", *sendInitialEvents); + keyPairQuery_sendInitialEvents = keyValuePair_create(keyQuery_sendInitialEvents, valueQuery_sendInitialEvents); + list_addElement(localVarQueryParameters,keyPairQuery_sendInitialEvents); + } + + // query parameters + char *keyQuery_timeoutSeconds = NULL; + char * valueQuery_timeoutSeconds = NULL; + keyValuePair_t *keyPairQuery_timeoutSeconds = 0; + if (timeoutSeconds) + { + keyQuery_timeoutSeconds = strdup("timeoutSeconds"); + valueQuery_timeoutSeconds = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_timeoutSeconds, MAX_NUMBER_LENGTH, "%d", *timeoutSeconds); + keyPairQuery_timeoutSeconds = keyValuePair_create(keyQuery_timeoutSeconds, valueQuery_timeoutSeconds); + list_addElement(localVarQueryParameters,keyPairQuery_timeoutSeconds); + } + + // query parameters + char *keyQuery_watch = NULL; + char * valueQuery_watch = NULL; + keyValuePair_t *keyPairQuery_watch = 0; + if (watch) + { + keyQuery_watch = strdup("watch"); + valueQuery_watch = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_watch, MAX_NUMBER_LENGTH, "%d", *watch); + keyPairQuery_watch = keyValuePair_create(keyQuery_watch, valueQuery_watch); + list_addElement(localVarQueryParameters,keyPairQuery_watch); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarHeaderType,"application/json;stream=watch"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf;stream=watch"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha1_storage_version_migration_list_t *elementToReturn = v1alpha1_storage_version_migration_list_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_allowWatchBookmarks){ + free(keyQuery_allowWatchBookmarks); + keyQuery_allowWatchBookmarks = NULL; + } + if(valueQuery_allowWatchBookmarks){ + free(valueQuery_allowWatchBookmarks); + valueQuery_allowWatchBookmarks = NULL; + } + if(keyPairQuery_allowWatchBookmarks){ + keyValuePair_free(keyPairQuery_allowWatchBookmarks); + keyPairQuery_allowWatchBookmarks = NULL; + } + if(keyQuery__continue){ + free(keyQuery__continue); + keyQuery__continue = NULL; + } + if(valueQuery__continue){ + free(valueQuery__continue); + valueQuery__continue = NULL; + } + if(keyPairQuery__continue){ + keyValuePair_free(keyPairQuery__continue); + keyPairQuery__continue = NULL; + } + if(keyQuery_fieldSelector){ + free(keyQuery_fieldSelector); + keyQuery_fieldSelector = NULL; + } + if(valueQuery_fieldSelector){ + free(valueQuery_fieldSelector); + valueQuery_fieldSelector = NULL; + } + if(keyPairQuery_fieldSelector){ + keyValuePair_free(keyPairQuery_fieldSelector); + keyPairQuery_fieldSelector = NULL; + } + if(keyQuery_labelSelector){ + free(keyQuery_labelSelector); + keyQuery_labelSelector = NULL; + } + if(valueQuery_labelSelector){ + free(valueQuery_labelSelector); + valueQuery_labelSelector = NULL; + } + if(keyPairQuery_labelSelector){ + keyValuePair_free(keyPairQuery_labelSelector); + keyPairQuery_labelSelector = NULL; + } + if(keyQuery_limit){ + free(keyQuery_limit); + keyQuery_limit = NULL; + } + if(valueQuery_limit){ + free(valueQuery_limit); + valueQuery_limit = NULL; + } + if(keyPairQuery_limit){ + keyValuePair_free(keyPairQuery_limit); + keyPairQuery_limit = NULL; + } + if(keyQuery_resourceVersion){ + free(keyQuery_resourceVersion); + keyQuery_resourceVersion = NULL; + } + if(valueQuery_resourceVersion){ + free(valueQuery_resourceVersion); + valueQuery_resourceVersion = NULL; + } + if(keyPairQuery_resourceVersion){ + keyValuePair_free(keyPairQuery_resourceVersion); + keyPairQuery_resourceVersion = NULL; + } + if(keyQuery_resourceVersionMatch){ + free(keyQuery_resourceVersionMatch); + keyQuery_resourceVersionMatch = NULL; + } + if(valueQuery_resourceVersionMatch){ + free(valueQuery_resourceVersionMatch); + valueQuery_resourceVersionMatch = NULL; + } + if(keyPairQuery_resourceVersionMatch){ + keyValuePair_free(keyPairQuery_resourceVersionMatch); + keyPairQuery_resourceVersionMatch = NULL; + } + if(keyQuery_sendInitialEvents){ + free(keyQuery_sendInitialEvents); + keyQuery_sendInitialEvents = NULL; + } + if(valueQuery_sendInitialEvents){ + free(valueQuery_sendInitialEvents); + valueQuery_sendInitialEvents = NULL; + } + if(keyPairQuery_sendInitialEvents){ + keyValuePair_free(keyPairQuery_sendInitialEvents); + keyPairQuery_sendInitialEvents = NULL; + } + if(keyQuery_timeoutSeconds){ + free(keyQuery_timeoutSeconds); + keyQuery_timeoutSeconds = NULL; + } + if(valueQuery_timeoutSeconds){ + free(valueQuery_timeoutSeconds); + valueQuery_timeoutSeconds = NULL; + } + if(keyPairQuery_timeoutSeconds){ + keyValuePair_free(keyPairQuery_timeoutSeconds); + keyPairQuery_timeoutSeconds = NULL; + } + if(keyQuery_watch){ + free(keyQuery_watch); + keyQuery_watch = NULL; + } + if(valueQuery_watch){ + free(valueQuery_watch); + valueQuery_watch = NULL; + } + if(keyPairQuery_watch){ + keyValuePair_free(keyPairQuery_watch); + keyPairQuery_watch = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// partially update the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_patchStorageVersionMigration(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = list_createList(); + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // query parameters + char *keyQuery_force = NULL; + char * valueQuery_force = NULL; + keyValuePair_t *keyPairQuery_force = 0; + if (force) + { + keyQuery_force = strdup("force"); + valueQuery_force = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_force, MAX_NUMBER_LENGTH, "%d", *force); + keyPairQuery_force = keyValuePair_create(keyQuery_force, valueQuery_force); + list_addElement(localVarQueryParameters,keyPairQuery_force); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = object_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarContentType,"application/json-patch+json"); //consumes + list_addElement(localVarContentType,"application/merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/strategic-merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/apply-patch+yaml"); //consumes + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PATCH"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha1_storage_version_migration_t *elementToReturn = v1alpha1_storage_version_migration_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + list_freeList(localVarContentType); + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + if(keyQuery_force){ + free(keyQuery_force); + keyQuery_force = NULL; + } + if(valueQuery_force){ + free(valueQuery_force); + valueQuery_force = NULL; + } + if(keyPairQuery_force){ + keyValuePair_free(keyPairQuery_force); + keyPairQuery_force = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// partially update status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_patchStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = list_createList(); + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // query parameters + char *keyQuery_force = NULL; + char * valueQuery_force = NULL; + keyValuePair_t *keyPairQuery_force = 0; + if (force) + { + keyQuery_force = strdup("force"); + valueQuery_force = calloc(1,MAX_NUMBER_LENGTH); + snprintf(valueQuery_force, MAX_NUMBER_LENGTH, "%d", *force); + keyPairQuery_force = keyValuePair_create(keyQuery_force, valueQuery_force); + list_addElement(localVarQueryParameters,keyPairQuery_force); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = object_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + list_addElement(localVarContentType,"application/json-patch+json"); //consumes + list_addElement(localVarContentType,"application/merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/strategic-merge-patch+json"); //consumes + list_addElement(localVarContentType,"application/apply-patch+yaml"); //consumes + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PATCH"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha1_storage_version_migration_t *elementToReturn = v1alpha1_storage_version_migration_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + list_freeList(localVarContentType); + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + if(keyQuery_force){ + free(keyQuery_force); + keyQuery_force = NULL; + } + if(valueQuery_force){ + free(valueQuery_force); + valueQuery_force = NULL; + } + if(keyPairQuery_force){ + keyValuePair_free(keyPairQuery_force); + keyPairQuery_force = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// read the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_readStorageVersionMigration(apiClient_t *apiClient, char *name, char *pretty) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha1_storage_version_migration_t *elementToReturn = v1alpha1_storage_version_migration_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// read status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_readStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, char *pretty) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "GET"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha1_storage_version_migration_t *elementToReturn = v1alpha1_storage_version_migration_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// replace the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_replaceStorageVersionMigration(apiClient_t *apiClient, char *name, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha1_storage_version_migration_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PUT"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha1_storage_version_migration_t *elementToReturn = v1alpha1_storage_version_migration_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + +// replace status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_replaceStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation) +{ + list_t *localVarQueryParameters = list_createList(); + list_t *localVarHeaderParameters = NULL; + list_t *localVarFormParameters = NULL; + list_t *localVarHeaderType = list_createList(); + list_t *localVarContentType = NULL; + char *localVarBodyParameters = NULL; + + // create the path + long sizeOfPath = strlen("/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status")+1; + char *localVarPath = malloc(sizeOfPath); + snprintf(localVarPath, sizeOfPath, "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status"); + + + // Path Params + long sizeOfPathParams_name = strlen(name)+3 + strlen("{ name }"); + if(name == NULL) { + goto end; + } + char* localVarToReplace_name = malloc(sizeOfPathParams_name); + sprintf(localVarToReplace_name, "{%s}", "name"); + + localVarPath = strReplace(localVarPath, localVarToReplace_name, name); + + + + // query parameters + char *keyQuery_pretty = NULL; + char * valueQuery_pretty = NULL; + keyValuePair_t *keyPairQuery_pretty = 0; + if (pretty) + { + keyQuery_pretty = strdup("pretty"); + valueQuery_pretty = strdup((pretty)); + keyPairQuery_pretty = keyValuePair_create(keyQuery_pretty, valueQuery_pretty); + list_addElement(localVarQueryParameters,keyPairQuery_pretty); + } + + // query parameters + char *keyQuery_dryRun = NULL; + char * valueQuery_dryRun = NULL; + keyValuePair_t *keyPairQuery_dryRun = 0; + if (dryRun) + { + keyQuery_dryRun = strdup("dryRun"); + valueQuery_dryRun = strdup((dryRun)); + keyPairQuery_dryRun = keyValuePair_create(keyQuery_dryRun, valueQuery_dryRun); + list_addElement(localVarQueryParameters,keyPairQuery_dryRun); + } + + // query parameters + char *keyQuery_fieldManager = NULL; + char * valueQuery_fieldManager = NULL; + keyValuePair_t *keyPairQuery_fieldManager = 0; + if (fieldManager) + { + keyQuery_fieldManager = strdup("fieldManager"); + valueQuery_fieldManager = strdup((fieldManager)); + keyPairQuery_fieldManager = keyValuePair_create(keyQuery_fieldManager, valueQuery_fieldManager); + list_addElement(localVarQueryParameters,keyPairQuery_fieldManager); + } + + // query parameters + char *keyQuery_fieldValidation = NULL; + char * valueQuery_fieldValidation = NULL; + keyValuePair_t *keyPairQuery_fieldValidation = 0; + if (fieldValidation) + { + keyQuery_fieldValidation = strdup("fieldValidation"); + valueQuery_fieldValidation = strdup((fieldValidation)); + keyPairQuery_fieldValidation = keyValuePair_create(keyQuery_fieldValidation, valueQuery_fieldValidation); + list_addElement(localVarQueryParameters,keyPairQuery_fieldValidation); + } + + // Body Param + cJSON *localVarSingleItemJSON_body = NULL; + if (body != NULL) + { + //string + localVarSingleItemJSON_body = v1alpha1_storage_version_migration_convertToJSON(body); + localVarBodyParameters = cJSON_Print(localVarSingleItemJSON_body); + } + list_addElement(localVarHeaderType,"application/json"); //produces + list_addElement(localVarHeaderType,"application/yaml"); //produces + list_addElement(localVarHeaderType,"application/vnd.kubernetes.protobuf"); //produces + apiClient_invoke(apiClient, + localVarPath, + localVarQueryParameters, + localVarHeaderParameters, + localVarFormParameters, + localVarHeaderType, + localVarContentType, + localVarBodyParameters, + "PUT"); + + // uncomment below to debug the error response + //if (apiClient->response_code == 200) { + // printf("%s\n","OK"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 201) { + // printf("%s\n","Created"); + //} + // uncomment below to debug the error response + //if (apiClient->response_code == 401) { + // printf("%s\n","Unauthorized"); + //} + //nonprimitive not container + cJSON *StoragemigrationV1alpha1APIlocalVarJSON = cJSON_Parse(apiClient->dataReceived); + v1alpha1_storage_version_migration_t *elementToReturn = v1alpha1_storage_version_migration_parseFromJSON(StoragemigrationV1alpha1APIlocalVarJSON); + cJSON_Delete(StoragemigrationV1alpha1APIlocalVarJSON); + if(elementToReturn == NULL) { + // return 0; + } + + //return type + if (apiClient->dataReceived) { + free(apiClient->dataReceived); + apiClient->dataReceived = NULL; + apiClient->dataReceivedLen = 0; + } + list_freeList(localVarQueryParameters); + + + list_freeList(localVarHeaderType); + + free(localVarPath); + free(localVarToReplace_name); + if (localVarSingleItemJSON_body) { + cJSON_Delete(localVarSingleItemJSON_body); + localVarSingleItemJSON_body = NULL; + } + free(localVarBodyParameters); + if(keyQuery_pretty){ + free(keyQuery_pretty); + keyQuery_pretty = NULL; + } + if(valueQuery_pretty){ + free(valueQuery_pretty); + valueQuery_pretty = NULL; + } + if(keyPairQuery_pretty){ + keyValuePair_free(keyPairQuery_pretty); + keyPairQuery_pretty = NULL; + } + if(keyQuery_dryRun){ + free(keyQuery_dryRun); + keyQuery_dryRun = NULL; + } + if(valueQuery_dryRun){ + free(valueQuery_dryRun); + valueQuery_dryRun = NULL; + } + if(keyPairQuery_dryRun){ + keyValuePair_free(keyPairQuery_dryRun); + keyPairQuery_dryRun = NULL; + } + if(keyQuery_fieldManager){ + free(keyQuery_fieldManager); + keyQuery_fieldManager = NULL; + } + if(valueQuery_fieldManager){ + free(valueQuery_fieldManager); + valueQuery_fieldManager = NULL; + } + if(keyPairQuery_fieldManager){ + keyValuePair_free(keyPairQuery_fieldManager); + keyPairQuery_fieldManager = NULL; + } + if(keyQuery_fieldValidation){ + free(keyQuery_fieldValidation); + keyQuery_fieldValidation = NULL; + } + if(valueQuery_fieldValidation){ + free(valueQuery_fieldValidation); + valueQuery_fieldValidation = NULL; + } + if(keyPairQuery_fieldValidation){ + keyValuePair_free(keyPairQuery_fieldValidation); + keyPairQuery_fieldValidation = NULL; + } + return elementToReturn; +end: + free(localVarPath); + return NULL; + +} + diff --git a/kubernetes/api/StoragemigrationV1alpha1API.h b/kubernetes/api/StoragemigrationV1alpha1API.h new file mode 100644 index 0000000..50e0b91 --- /dev/null +++ b/kubernetes/api/StoragemigrationV1alpha1API.h @@ -0,0 +1,81 @@ +#include +#include +#include "../include/apiClient.h" +#include "../include/list.h" +#include "../external/cJSON.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" +#include "../model/object.h" +#include "../model/v1_api_resource_list.h" +#include "../model/v1_delete_options.h" +#include "../model/v1_status.h" +#include "../model/v1alpha1_storage_version_migration.h" +#include "../model/v1alpha1_storage_version_migration_list.h" + + +// create a StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_createStorageVersionMigration(apiClient_t *apiClient, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + +// delete collection of StorageVersionMigration +// +v1_status_t* +StoragemigrationV1alpha1API_deleteCollectionStorageVersionMigration(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); + + +// delete a StorageVersionMigration +// +v1_status_t* +StoragemigrationV1alpha1API_deleteStorageVersionMigration(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); + + +// get available resources +// +v1_api_resource_list_t* +StoragemigrationV1alpha1API_getAPIResources(apiClient_t *apiClient); + + +// list or watch objects of kind StorageVersionMigration +// +v1alpha1_storage_version_migration_list_t* +StoragemigrationV1alpha1API_listStorageVersionMigration(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); + + +// partially update the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_patchStorageVersionMigration(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); + + +// partially update status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_patchStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); + + +// read the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_readStorageVersionMigration(apiClient_t *apiClient, char *name, char *pretty); + + +// read status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_readStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, char *pretty); + + +// replace the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_replaceStorageVersionMigration(apiClient_t *apiClient, char *name, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + +// replace status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* +StoragemigrationV1alpha1API_replaceStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); + + diff --git a/kubernetes/docs/AdmissionregistrationV1API.md b/kubernetes/docs/AdmissionregistrationV1API.md index c0043e3..48a7010 100644 --- a/kubernetes/docs/AdmissionregistrationV1API.md +++ b/kubernetes/docs/AdmissionregistrationV1API.md @@ -5,19 +5,36 @@ All URIs are relative to *http://localhost* Method | HTTP request | Description ------------- | ------------- | ------------- [**AdmissionregistrationV1API_createMutatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_createMutatingWebhookConfiguration) | **POST** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations | +[**AdmissionregistrationV1API_createValidatingAdmissionPolicy**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_createValidatingAdmissionPolicy) | **POST** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies | +[**AdmissionregistrationV1API_createValidatingAdmissionPolicyBinding**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_createValidatingAdmissionPolicyBinding) | **POST** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings | [**AdmissionregistrationV1API_createValidatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_createValidatingWebhookConfiguration) | **POST** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations | [**AdmissionregistrationV1API_deleteCollectionMutatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteCollectionMutatingWebhookConfiguration) | **DELETE** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations | +[**AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicy**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicy) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies | +[**AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicyBinding**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicyBinding) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings | [**AdmissionregistrationV1API_deleteCollectionValidatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteCollectionValidatingWebhookConfiguration) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations | [**AdmissionregistrationV1API_deleteMutatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteMutatingWebhookConfiguration) | **DELETE** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name} | +[**AdmissionregistrationV1API_deleteValidatingAdmissionPolicy**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteValidatingAdmissionPolicy) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name} | +[**AdmissionregistrationV1API_deleteValidatingAdmissionPolicyBinding**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteValidatingAdmissionPolicyBinding) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name} | [**AdmissionregistrationV1API_deleteValidatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_deleteValidatingWebhookConfiguration) | **DELETE** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name} | [**AdmissionregistrationV1API_getAPIResources**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_getAPIResources) | **GET** /apis/admissionregistration.k8s.io/v1/ | [**AdmissionregistrationV1API_listMutatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_listMutatingWebhookConfiguration) | **GET** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations | +[**AdmissionregistrationV1API_listValidatingAdmissionPolicy**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_listValidatingAdmissionPolicy) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies | +[**AdmissionregistrationV1API_listValidatingAdmissionPolicyBinding**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_listValidatingAdmissionPolicyBinding) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings | [**AdmissionregistrationV1API_listValidatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_listValidatingWebhookConfiguration) | **GET** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations | [**AdmissionregistrationV1API_patchMutatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchMutatingWebhookConfiguration) | **PATCH** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name} | +[**AdmissionregistrationV1API_patchValidatingAdmissionPolicy**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchValidatingAdmissionPolicy) | **PATCH** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name} | +[**AdmissionregistrationV1API_patchValidatingAdmissionPolicyBinding**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchValidatingAdmissionPolicyBinding) | **PATCH** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name} | +[**AdmissionregistrationV1API_patchValidatingAdmissionPolicyStatus**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchValidatingAdmissionPolicyStatus) | **PATCH** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status | [**AdmissionregistrationV1API_patchValidatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_patchValidatingWebhookConfiguration) | **PATCH** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name} | [**AdmissionregistrationV1API_readMutatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_readMutatingWebhookConfiguration) | **GET** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name} | +[**AdmissionregistrationV1API_readValidatingAdmissionPolicy**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_readValidatingAdmissionPolicy) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name} | +[**AdmissionregistrationV1API_readValidatingAdmissionPolicyBinding**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_readValidatingAdmissionPolicyBinding) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name} | +[**AdmissionregistrationV1API_readValidatingAdmissionPolicyStatus**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_readValidatingAdmissionPolicyStatus) | **GET** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status | [**AdmissionregistrationV1API_readValidatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_readValidatingWebhookConfiguration) | **GET** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name} | [**AdmissionregistrationV1API_replaceMutatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceMutatingWebhookConfiguration) | **PUT** /apis/admissionregistration.k8s.io/v1/mutatingwebhookconfigurations/{name} | +[**AdmissionregistrationV1API_replaceValidatingAdmissionPolicy**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceValidatingAdmissionPolicy) | **PUT** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name} | +[**AdmissionregistrationV1API_replaceValidatingAdmissionPolicyBinding**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceValidatingAdmissionPolicyBinding) | **PUT** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name} | +[**AdmissionregistrationV1API_replaceValidatingAdmissionPolicyStatus**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceValidatingAdmissionPolicyStatus) | **PUT** /apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status | [**AdmissionregistrationV1API_replaceValidatingWebhookConfiguration**](AdmissionregistrationV1API.md#AdmissionregistrationV1API_replaceValidatingWebhookConfiguration) | **PUT** /apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations/{name} | @@ -43,6 +60,72 @@ Name | Type | Description | Notes [v1_mutating_webhook_configuration_t](v1_mutating_webhook_configuration.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_createValidatingAdmissionPolicy** +```c +// create a ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* AdmissionregistrationV1API_createValidatingAdmissionPolicy(apiClient_t *apiClient, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**body** | **[v1_validating_admission_policy_t](v1_validating_admission_policy.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1_validating_admission_policy_t](v1_validating_admission_policy.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_createValidatingAdmissionPolicyBinding** +```c +// create a ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* AdmissionregistrationV1API_createValidatingAdmissionPolicyBinding(apiClient_t *apiClient, v1_validating_admission_policy_binding_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**body** | **[v1_validating_admission_policy_binding_t](v1_validating_admission_policy_binding.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1_validating_admission_policy_binding_t](v1_validating_admission_policy_binding.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -118,6 +201,90 @@ Name | Type | Description | Notes [v1_status_t](v1_status.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicy** +```c +// delete collection of ValidatingAdmissionPolicy +// +v1_status_t* AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicy(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicyBinding** +```c +// delete collection of ValidatingAdmissionPolicyBinding +// +v1_status_t* AdmissionregistrationV1API_deleteCollectionValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -195,6 +362,76 @@ Name | Type | Description | Notes [v1_status_t](v1_status.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_deleteValidatingAdmissionPolicy** +```c +// delete a ValidatingAdmissionPolicy +// +v1_status_t* AdmissionregistrationV1API_deleteValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicy | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_deleteValidatingAdmissionPolicyBinding** +```c +// delete a ValidatingAdmissionPolicyBinding +// +v1_status_t* AdmissionregistrationV1API_deleteValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicyBinding | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -297,6 +534,84 @@ Name | Type | Description | Notes [v1_mutating_webhook_configuration_list_t](v1_mutating_webhook_configuration_list.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf, application/json;stream=watch, application/vnd.kubernetes.protobuf;stream=watch + +[[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) + +# **AdmissionregistrationV1API_listValidatingAdmissionPolicy** +```c +// list or watch objects of kind ValidatingAdmissionPolicy +// +v1_validating_admission_policy_list_t* AdmissionregistrationV1API_listValidatingAdmissionPolicy(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**allowWatchBookmarks** | **int \*** | allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**watch** | **int \*** | Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. | [optional] + +### Return type + +[v1_validating_admission_policy_list_t](v1_validating_admission_policy_list.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf, application/json;stream=watch, application/vnd.kubernetes.protobuf;stream=watch + +[[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) + +# **AdmissionregistrationV1API_listValidatingAdmissionPolicyBinding** +```c +// list or watch objects of kind ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_list_t* AdmissionregistrationV1API_listValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**allowWatchBookmarks** | **int \*** | allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**watch** | **int \*** | Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. | [optional] + +### Return type + +[v1_validating_admission_policy_binding_list_t](v1_validating_admission_policy_binding_list.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -371,6 +686,111 @@ Name | Type | Description | Notes [v1_mutating_webhook_configuration_t](v1_mutating_webhook_configuration.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json, application/apply-patch+yaml + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_patchValidatingAdmissionPolicy** +```c +// partially update the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* AdmissionregistrationV1API_patchValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicy | +**body** | **[object_t](object.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch). | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] +**force** | **int \*** | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests. | [optional] + +### Return type + +[v1_validating_admission_policy_t](v1_validating_admission_policy.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json, application/apply-patch+yaml + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_patchValidatingAdmissionPolicyBinding** +```c +// partially update the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* AdmissionregistrationV1API_patchValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicyBinding | +**body** | **[object_t](object.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch). | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] +**force** | **int \*** | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests. | [optional] + +### Return type + +[v1_validating_admission_policy_binding_t](v1_validating_admission_policy_binding.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json, application/apply-patch+yaml + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_patchValidatingAdmissionPolicyStatus** +```c +// partially update status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* AdmissionregistrationV1API_patchValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicy | +**body** | **[object_t](object.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch). | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] +**force** | **int \*** | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests. | [optional] + +### Return type + +[v1_validating_admission_policy_t](v1_validating_admission_policy.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -436,6 +856,96 @@ Name | Type | Description | Notes [v1_mutating_webhook_configuration_t](v1_mutating_webhook_configuration.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_readValidatingAdmissionPolicy** +```c +// read the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* AdmissionregistrationV1API_readValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, char *pretty); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicy | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] + +### Return type + +[v1_validating_admission_policy_t](v1_validating_admission_policy.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_readValidatingAdmissionPolicyBinding** +```c +// read the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* AdmissionregistrationV1API_readValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, char *pretty); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicyBinding | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] + +### Return type + +[v1_validating_admission_policy_binding_t](v1_validating_admission_policy_binding.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_readValidatingAdmissionPolicyStatus** +```c +// read status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* AdmissionregistrationV1API_readValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, char *pretty); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicy | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] + +### Return type + +[v1_validating_admission_policy_t](v1_validating_admission_policy.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -500,6 +1010,108 @@ Name | Type | Description | Notes [v1_mutating_webhook_configuration_t](v1_mutating_webhook_configuration.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_replaceValidatingAdmissionPolicy** +```c +// replace the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* AdmissionregistrationV1API_replaceValidatingAdmissionPolicy(apiClient_t *apiClient, char *name, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicy | +**body** | **[v1_validating_admission_policy_t](v1_validating_admission_policy.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1_validating_admission_policy_t](v1_validating_admission_policy.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_replaceValidatingAdmissionPolicyBinding** +```c +// replace the specified ValidatingAdmissionPolicyBinding +// +v1_validating_admission_policy_binding_t* AdmissionregistrationV1API_replaceValidatingAdmissionPolicyBinding(apiClient_t *apiClient, char *name, v1_validating_admission_policy_binding_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicyBinding | +**body** | **[v1_validating_admission_policy_binding_t](v1_validating_admission_policy_binding.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1_validating_admission_policy_binding_t](v1_validating_admission_policy_binding.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **AdmissionregistrationV1API_replaceValidatingAdmissionPolicyStatus** +```c +// replace status of the specified ValidatingAdmissionPolicy +// +v1_validating_admission_policy_t* AdmissionregistrationV1API_replaceValidatingAdmissionPolicyStatus(apiClient_t *apiClient, char *name, v1_validating_admission_policy_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ValidatingAdmissionPolicy | +**body** | **[v1_validating_admission_policy_t](v1_validating_admission_policy.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1_validating_admission_policy_t](v1_validating_admission_policy.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) diff --git a/kubernetes/docs/ResourceV1alpha2API.md b/kubernetes/docs/ResourceV1alpha2API.md index deb400c..7dc69cf 100644 --- a/kubernetes/docs/ResourceV1alpha2API.md +++ b/kubernetes/docs/ResourceV1alpha2API.md @@ -6,42 +6,65 @@ Method | HTTP request | Description ------------- | ------------- | ------------- [**ResourceV1alpha2API_createNamespacedPodSchedulingContext**](ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedPodSchedulingContext) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts | [**ResourceV1alpha2API_createNamespacedResourceClaim**](ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedResourceClaim) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims | +[**ResourceV1alpha2API_createNamespacedResourceClaimParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedResourceClaimParameters) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters | [**ResourceV1alpha2API_createNamespacedResourceClaimTemplate**](ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedResourceClaimTemplate) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates | +[**ResourceV1alpha2API_createNamespacedResourceClassParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_createNamespacedResourceClassParameters) | **POST** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters | [**ResourceV1alpha2API_createResourceClass**](ResourceV1alpha2API.md#ResourceV1alpha2API_createResourceClass) | **POST** /apis/resource.k8s.io/v1alpha2/resourceclasses | +[**ResourceV1alpha2API_createResourceSlice**](ResourceV1alpha2API.md#ResourceV1alpha2API_createResourceSlice) | **POST** /apis/resource.k8s.io/v1alpha2/resourceslices | [**ResourceV1alpha2API_deleteCollectionNamespacedPodSchedulingContext**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedPodSchedulingContext) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts | [**ResourceV1alpha2API_deleteCollectionNamespacedResourceClaim**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedResourceClaim) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims | +[**ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimParameters) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters | [**ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimTemplate**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimTemplate) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates | +[**ResourceV1alpha2API_deleteCollectionNamespacedResourceClassParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionNamespacedResourceClassParameters) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters | [**ResourceV1alpha2API_deleteCollectionResourceClass**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionResourceClass) | **DELETE** /apis/resource.k8s.io/v1alpha2/resourceclasses | +[**ResourceV1alpha2API_deleteCollectionResourceSlice**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteCollectionResourceSlice) | **DELETE** /apis/resource.k8s.io/v1alpha2/resourceslices | [**ResourceV1alpha2API_deleteNamespacedPodSchedulingContext**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedPodSchedulingContext) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name} | [**ResourceV1alpha2API_deleteNamespacedResourceClaim**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedResourceClaim) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name} | +[**ResourceV1alpha2API_deleteNamespacedResourceClaimParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedResourceClaimParameters) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name} | [**ResourceV1alpha2API_deleteNamespacedResourceClaimTemplate**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedResourceClaimTemplate) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates/{name} | +[**ResourceV1alpha2API_deleteNamespacedResourceClassParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteNamespacedResourceClassParameters) | **DELETE** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name} | [**ResourceV1alpha2API_deleteResourceClass**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteResourceClass) | **DELETE** /apis/resource.k8s.io/v1alpha2/resourceclasses/{name} | +[**ResourceV1alpha2API_deleteResourceSlice**](ResourceV1alpha2API.md#ResourceV1alpha2API_deleteResourceSlice) | **DELETE** /apis/resource.k8s.io/v1alpha2/resourceslices/{name} | [**ResourceV1alpha2API_getAPIResources**](ResourceV1alpha2API.md#ResourceV1alpha2API_getAPIResources) | **GET** /apis/resource.k8s.io/v1alpha2/ | [**ResourceV1alpha2API_listNamespacedPodSchedulingContext**](ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedPodSchedulingContext) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts | [**ResourceV1alpha2API_listNamespacedResourceClaim**](ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedResourceClaim) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims | +[**ResourceV1alpha2API_listNamespacedResourceClaimParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedResourceClaimParameters) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters | [**ResourceV1alpha2API_listNamespacedResourceClaimTemplate**](ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedResourceClaimTemplate) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates | +[**ResourceV1alpha2API_listNamespacedResourceClassParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_listNamespacedResourceClassParameters) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters | [**ResourceV1alpha2API_listPodSchedulingContextForAllNamespaces**](ResourceV1alpha2API.md#ResourceV1alpha2API_listPodSchedulingContextForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/podschedulingcontexts | [**ResourceV1alpha2API_listResourceClaimForAllNamespaces**](ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClaimForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclaims | +[**ResourceV1alpha2API_listResourceClaimParametersForAllNamespaces**](ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClaimParametersForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclaimparameters | [**ResourceV1alpha2API_listResourceClaimTemplateForAllNamespaces**](ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClaimTemplateForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclaimtemplates | [**ResourceV1alpha2API_listResourceClass**](ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClass) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclasses | +[**ResourceV1alpha2API_listResourceClassParametersForAllNamespaces**](ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceClassParametersForAllNamespaces) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclassparameters | +[**ResourceV1alpha2API_listResourceSlice**](ResourceV1alpha2API.md#ResourceV1alpha2API_listResourceSlice) | **GET** /apis/resource.k8s.io/v1alpha2/resourceslices | [**ResourceV1alpha2API_patchNamespacedPodSchedulingContext**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedPodSchedulingContext) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name} | [**ResourceV1alpha2API_patchNamespacedPodSchedulingContextStatus**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedPodSchedulingContextStatus) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name}/status | [**ResourceV1alpha2API_patchNamespacedResourceClaim**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClaim) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name} | +[**ResourceV1alpha2API_patchNamespacedResourceClaimParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClaimParameters) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name} | [**ResourceV1alpha2API_patchNamespacedResourceClaimStatus**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClaimStatus) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status | [**ResourceV1alpha2API_patchNamespacedResourceClaimTemplate**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClaimTemplate) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates/{name} | +[**ResourceV1alpha2API_patchNamespacedResourceClassParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchNamespacedResourceClassParameters) | **PATCH** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name} | [**ResourceV1alpha2API_patchResourceClass**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchResourceClass) | **PATCH** /apis/resource.k8s.io/v1alpha2/resourceclasses/{name} | +[**ResourceV1alpha2API_patchResourceSlice**](ResourceV1alpha2API.md#ResourceV1alpha2API_patchResourceSlice) | **PATCH** /apis/resource.k8s.io/v1alpha2/resourceslices/{name} | [**ResourceV1alpha2API_readNamespacedPodSchedulingContext**](ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedPodSchedulingContext) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name} | [**ResourceV1alpha2API_readNamespacedPodSchedulingContextStatus**](ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedPodSchedulingContextStatus) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name}/status | [**ResourceV1alpha2API_readNamespacedResourceClaim**](ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClaim) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name} | +[**ResourceV1alpha2API_readNamespacedResourceClaimParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClaimParameters) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name} | [**ResourceV1alpha2API_readNamespacedResourceClaimStatus**](ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClaimStatus) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status | [**ResourceV1alpha2API_readNamespacedResourceClaimTemplate**](ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClaimTemplate) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates/{name} | +[**ResourceV1alpha2API_readNamespacedResourceClassParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_readNamespacedResourceClassParameters) | **GET** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name} | [**ResourceV1alpha2API_readResourceClass**](ResourceV1alpha2API.md#ResourceV1alpha2API_readResourceClass) | **GET** /apis/resource.k8s.io/v1alpha2/resourceclasses/{name} | +[**ResourceV1alpha2API_readResourceSlice**](ResourceV1alpha2API.md#ResourceV1alpha2API_readResourceSlice) | **GET** /apis/resource.k8s.io/v1alpha2/resourceslices/{name} | [**ResourceV1alpha2API_replaceNamespacedPodSchedulingContext**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedPodSchedulingContext) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name} | [**ResourceV1alpha2API_replaceNamespacedPodSchedulingContextStatus**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedPodSchedulingContextStatus) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/podschedulingcontexts/{name}/status | [**ResourceV1alpha2API_replaceNamespacedResourceClaim**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClaim) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name} | +[**ResourceV1alpha2API_replaceNamespacedResourceClaimParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClaimParameters) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name} | [**ResourceV1alpha2API_replaceNamespacedResourceClaimStatus**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClaimStatus) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims/{name}/status | [**ResourceV1alpha2API_replaceNamespacedResourceClaimTemplate**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClaimTemplate) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimtemplates/{name} | +[**ResourceV1alpha2API_replaceNamespacedResourceClassParameters**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceNamespacedResourceClassParameters) | **PUT** /apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name} | [**ResourceV1alpha2API_replaceResourceClass**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceResourceClass) | **PUT** /apis/resource.k8s.io/v1alpha2/resourceclasses/{name} | +[**ResourceV1alpha2API_replaceResourceSlice**](ResourceV1alpha2API.md#ResourceV1alpha2API_replaceResourceSlice) | **PUT** /apis/resource.k8s.io/v1alpha2/resourceslices/{name} | # **ResourceV1alpha2API_createNamespacedPodSchedulingContext** @@ -101,6 +124,40 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_t](v1alpha2_resource_claim.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_createNamespacedResourceClaimParameters** +```c +// create ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* ResourceV1alpha2API_createNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, v1alpha2_resource_claim_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**body** | **[v1alpha2_resource_claim_parameters_t](v1alpha2_resource_claim_parameters.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha2_resource_claim_parameters_t](v1alpha2_resource_claim_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -135,6 +192,40 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_template_t](v1alpha2_resource_claim_template.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_createNamespacedResourceClassParameters** +```c +// create ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* ResourceV1alpha2API_createNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, v1alpha2_resource_class_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**body** | **[v1alpha2_resource_class_parameters_t](v1alpha2_resource_class_parameters.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha2_resource_class_parameters_t](v1alpha2_resource_class_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -168,6 +259,39 @@ Name | Type | Description | Notes [v1alpha2_resource_class_t](v1alpha2_resource_class.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_createResourceSlice** +```c +// create a ResourceSlice +// +v1alpha2_resource_slice_t* ResourceV1alpha2API_createResourceSlice(apiClient_t *apiClient, v1alpha2_resource_slice_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**body** | **[v1alpha2_resource_slice_t](v1alpha2_resource_slice.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha2_resource_slice_t](v1alpha2_resource_slice.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -254,6 +378,49 @@ Name | Type | Description | Notes [v1_status_t](v1_status.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimParameters** +```c +// delete collection of ResourceClaimParameters +// +v1_status_t* ResourceV1alpha2API_deleteCollectionNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -297,6 +464,49 @@ Name | Type | Description | Notes [v1_status_t](v1_status.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_deleteCollectionNamespacedResourceClassParameters** +```c +// delete collection of ResourceClassParameters +// +v1_status_t* ResourceV1alpha2API_deleteCollectionNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -339,6 +549,48 @@ Name | Type | Description | Notes [v1_status_t](v1_status.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_deleteCollectionResourceSlice** +```c +// delete collection of ResourceSlice +// +v1_status_t* ResourceV1alpha2API_deleteCollectionResourceSlice(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -411,6 +663,42 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_t](v1alpha2_resource_claim.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_deleteNamespacedResourceClaimParameters** +```c +// delete ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* ResourceV1alpha2API_deleteNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceClaimParameters | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1alpha2_resource_claim_parameters_t](v1alpha2_resource_claim_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -447,6 +735,42 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_template_t](v1alpha2_resource_claim_template.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_deleteNamespacedResourceClassParameters** +```c +// delete ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* ResourceV1alpha2API_deleteNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceClassParameters | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1alpha2_resource_class_parameters_t](v1alpha2_resource_class_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -482,6 +806,41 @@ Name | Type | Description | Notes [v1alpha2_resource_class_t](v1alpha2_resource_class.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_deleteResourceSlice** +```c +// delete a ResourceSlice +// +v1alpha2_resource_slice_t* ResourceV1alpha2API_deleteResourceSlice(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceSlice | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1alpha2_resource_slice_t](v1alpha2_resource_slice.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -590,6 +949,46 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_list_t](v1alpha2_resource_claim_list.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf, application/json;stream=watch, application/vnd.kubernetes.protobuf;stream=watch + +[[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) + +# **ResourceV1alpha2API_listNamespacedResourceClaimParameters** +```c +// list or watch objects of kind ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_list_t* ResourceV1alpha2API_listNamespacedResourceClaimParameters(apiClient_t *apiClient, char *_namespace, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**allowWatchBookmarks** | **int \*** | allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**watch** | **int \*** | Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. | [optional] + +### Return type + +[v1alpha2_resource_claim_parameters_list_t](v1alpha2_resource_claim_parameters_list.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -630,6 +1029,46 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_template_list_t](v1alpha2_resource_claim_template_list.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf, application/json;stream=watch, application/vnd.kubernetes.protobuf;stream=watch + +[[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) + +# **ResourceV1alpha2API_listNamespacedResourceClassParameters** +```c +// list or watch objects of kind ResourceClassParameters +// +v1alpha2_resource_class_parameters_list_t* ResourceV1alpha2API_listNamespacedResourceClassParameters(apiClient_t *apiClient, char *_namespace, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**allowWatchBookmarks** | **int \*** | allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**watch** | **int \*** | Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. | [optional] + +### Return type + +[v1alpha2_resource_class_parameters_list_t](v1alpha2_resource_class_parameters_list.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -708,6 +1147,45 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_list_t](v1alpha2_resource_claim_list.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf, application/json;stream=watch, application/vnd.kubernetes.protobuf;stream=watch + +[[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) + +# **ResourceV1alpha2API_listResourceClaimParametersForAllNamespaces** +```c +// list or watch objects of kind ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_list_t* ResourceV1alpha2API_listResourceClaimParametersForAllNamespaces(apiClient_t *apiClient, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *pretty, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**allowWatchBookmarks** | **int \*** | allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**watch** | **int \*** | Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. | [optional] + +### Return type + +[v1alpha2_resource_claim_parameters_list_t](v1alpha2_resource_claim_parameters_list.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -786,6 +1264,84 @@ Name | Type | Description | Notes [v1alpha2_resource_class_list_t](v1alpha2_resource_class_list.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf, application/json;stream=watch, application/vnd.kubernetes.protobuf;stream=watch + +[[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) + +# **ResourceV1alpha2API_listResourceClassParametersForAllNamespaces** +```c +// list or watch objects of kind ResourceClassParameters +// +v1alpha2_resource_class_parameters_list_t* ResourceV1alpha2API_listResourceClassParametersForAllNamespaces(apiClient_t *apiClient, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *pretty, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**allowWatchBookmarks** | **int \*** | allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**watch** | **int \*** | Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. | [optional] + +### Return type + +[v1alpha2_resource_class_parameters_list_t](v1alpha2_resource_class_parameters_list.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf, application/json;stream=watch, application/vnd.kubernetes.protobuf;stream=watch + +[[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) + +# **ResourceV1alpha2API_listResourceSlice** +```c +// list or watch objects of kind ResourceSlice +// +v1alpha2_resource_slice_list_t* ResourceV1alpha2API_listResourceSlice(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**allowWatchBookmarks** | **int \*** | allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**watch** | **int \*** | Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. | [optional] + +### Return type + +[v1alpha2_resource_slice_list_t](v1alpha2_resource_slice_list.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -894,6 +1450,42 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_t](v1alpha2_resource_claim.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json, application/apply-patch+yaml + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_patchNamespacedResourceClaimParameters** +```c +// partially update the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* ResourceV1alpha2API_patchNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceClaimParameters | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**body** | **[object_t](object.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch). | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] +**force** | **int \*** | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests. | [optional] + +### Return type + +[v1alpha2_resource_claim_parameters_t](v1alpha2_resource_claim_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -966,6 +1558,42 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_template_t](v1alpha2_resource_claim_template.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json, application/apply-patch+yaml + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_patchNamespacedResourceClassParameters** +```c +// partially update the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* ResourceV1alpha2API_patchNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceClassParameters | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**body** | **[object_t](object.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch). | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] +**force** | **int \*** | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests. | [optional] + +### Return type + +[v1alpha2_resource_class_parameters_t](v1alpha2_resource_class_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -1001,6 +1629,41 @@ Name | Type | Description | Notes [v1alpha2_resource_class_t](v1alpha2_resource_class.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json, application/apply-patch+yaml + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_patchResourceSlice** +```c +// partially update the specified ResourceSlice +// +v1alpha2_resource_slice_t* ResourceV1alpha2API_patchResourceSlice(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceSlice | +**body** | **[object_t](object.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch). | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] +**force** | **int \*** | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests. | [optional] + +### Return type + +[v1alpha2_resource_slice_t](v1alpha2_resource_slice.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -1094,6 +1757,37 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_t](v1alpha2_resource_claim.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_readNamespacedResourceClaimParameters** +```c +// read the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* ResourceV1alpha2API_readNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceClaimParameters | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] + +### Return type + +[v1alpha2_resource_claim_parameters_t](v1alpha2_resource_claim_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -1156,6 +1850,37 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_template_t](v1alpha2_resource_claim_template.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_readNamespacedResourceClassParameters** +```c +// read the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* ResourceV1alpha2API_readNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, char *pretty); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceClassParameters | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] + +### Return type + +[v1alpha2_resource_class_parameters_t](v1alpha2_resource_class_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -1186,6 +1911,36 @@ Name | Type | Description | Notes [v1alpha2_resource_class_t](v1alpha2_resource_class.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_readResourceSlice** +```c +// read the specified ResourceSlice +// +v1alpha2_resource_slice_t* ResourceV1alpha2API_readResourceSlice(apiClient_t *apiClient, char *name, char *pretty); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceSlice | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] + +### Return type + +[v1alpha2_resource_slice_t](v1alpha2_resource_slice.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -1291,6 +2046,41 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_t](v1alpha2_resource_claim.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_replaceNamespacedResourceClaimParameters** +```c +// replace the specified ResourceClaimParameters +// +v1alpha2_resource_claim_parameters_t* ResourceV1alpha2API_replaceNamespacedResourceClaimParameters(apiClient_t *apiClient, char *name, char *_namespace, v1alpha2_resource_claim_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceClaimParameters | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**body** | **[v1alpha2_resource_claim_parameters_t](v1alpha2_resource_claim_parameters.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha2_resource_claim_parameters_t](v1alpha2_resource_claim_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -1361,6 +2151,41 @@ Name | Type | Description | Notes [v1alpha2_resource_claim_template_t](v1alpha2_resource_claim_template.md) * +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **ResourceV1alpha2API_replaceNamespacedResourceClassParameters** +```c +// replace the specified ResourceClassParameters +// +v1alpha2_resource_class_parameters_t* ResourceV1alpha2API_replaceNamespacedResourceClassParameters(apiClient_t *apiClient, char *name, char *_namespace, v1alpha2_resource_class_parameters_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceClassParameters | +**_namespace** | **char \*** | object name and auth scope, such as for teams and projects | +**body** | **[v1alpha2_resource_class_parameters_t](v1alpha2_resource_class_parameters.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha2_resource_class_parameters_t](v1alpha2_resource_class_parameters.md) * + + ### Authorization [BearerToken](../README.md#BearerToken) @@ -1406,3 +2231,37 @@ Name | Type | Description | Notes [[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) +# **ResourceV1alpha2API_replaceResourceSlice** +```c +// replace the specified ResourceSlice +// +v1alpha2_resource_slice_t* ResourceV1alpha2API_replaceResourceSlice(apiClient_t *apiClient, char *name, v1alpha2_resource_slice_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the ResourceSlice | +**body** | **[v1alpha2_resource_slice_t](v1alpha2_resource_slice.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha2_resource_slice_t](v1alpha2_resource_slice.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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/kubernetes/docs/StoragemigrationAPI.md b/kubernetes/docs/StoragemigrationAPI.md new file mode 100644 index 0000000..555b1f6 --- /dev/null +++ b/kubernetes/docs/StoragemigrationAPI.md @@ -0,0 +1,37 @@ +# StoragemigrationAPI + +All URIs are relative to *http://localhost* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**StoragemigrationAPI_getAPIGroup**](StoragemigrationAPI.md#StoragemigrationAPI_getAPIGroup) | **GET** /apis/storagemigration.k8s.io/ | + + +# **StoragemigrationAPI_getAPIGroup** +```c +// get information of a group +// +v1_api_group_t* StoragemigrationAPI_getAPIGroup(apiClient_t *apiClient); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | + +### Return type + +[v1_api_group_t](v1_api_group.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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/kubernetes/docs/StoragemigrationV1alpha1API.md b/kubernetes/docs/StoragemigrationV1alpha1API.md new file mode 100644 index 0000000..d48b580 --- /dev/null +++ b/kubernetes/docs/StoragemigrationV1alpha1API.md @@ -0,0 +1,394 @@ +# StoragemigrationV1alpha1API + +All URIs are relative to *http://localhost* + +Method | HTTP request | Description +------------- | ------------- | ------------- +[**StoragemigrationV1alpha1API_createStorageVersionMigration**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_createStorageVersionMigration) | **POST** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations | +[**StoragemigrationV1alpha1API_deleteCollectionStorageVersionMigration**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_deleteCollectionStorageVersionMigration) | **DELETE** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations | +[**StoragemigrationV1alpha1API_deleteStorageVersionMigration**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_deleteStorageVersionMigration) | **DELETE** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name} | +[**StoragemigrationV1alpha1API_getAPIResources**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_getAPIResources) | **GET** /apis/storagemigration.k8s.io/v1alpha1/ | +[**StoragemigrationV1alpha1API_listStorageVersionMigration**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_listStorageVersionMigration) | **GET** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations | +[**StoragemigrationV1alpha1API_patchStorageVersionMigration**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_patchStorageVersionMigration) | **PATCH** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name} | +[**StoragemigrationV1alpha1API_patchStorageVersionMigrationStatus**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_patchStorageVersionMigrationStatus) | **PATCH** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status | +[**StoragemigrationV1alpha1API_readStorageVersionMigration**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_readStorageVersionMigration) | **GET** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name} | +[**StoragemigrationV1alpha1API_readStorageVersionMigrationStatus**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_readStorageVersionMigrationStatus) | **GET** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status | +[**StoragemigrationV1alpha1API_replaceStorageVersionMigration**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_replaceStorageVersionMigration) | **PUT** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name} | +[**StoragemigrationV1alpha1API_replaceStorageVersionMigrationStatus**](StoragemigrationV1alpha1API.md#StoragemigrationV1alpha1API_replaceStorageVersionMigrationStatus) | **PUT** /apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status | + + +# **StoragemigrationV1alpha1API_createStorageVersionMigration** +```c +// create a StorageVersionMigration +// +v1alpha1_storage_version_migration_t* StoragemigrationV1alpha1API_createStorageVersionMigration(apiClient_t *apiClient, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**body** | **[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_deleteCollectionStorageVersionMigration** +```c +// delete collection of StorageVersionMigration +// +v1_status_t* StoragemigrationV1alpha1API_deleteCollectionStorageVersionMigration(apiClient_t *apiClient, char *pretty, char *_continue, char *dryRun, char *fieldSelector, int *gracePeriodSeconds, char *labelSelector, int *limit, int *orphanDependents, char *propagationPolicy, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_deleteStorageVersionMigration** +```c +// delete a StorageVersionMigration +// +v1_status_t* StoragemigrationV1alpha1API_deleteStorageVersionMigration(apiClient_t *apiClient, char *name, char *pretty, char *dryRun, int *gracePeriodSeconds, int *orphanDependents, char *propagationPolicy, v1_delete_options_t *body); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the StorageVersionMigration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**gracePeriodSeconds** | **int \*** | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately. | [optional] +**orphanDependents** | **int \*** | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both. | [optional] +**propagationPolicy** | **char \*** | Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground. | [optional] +**body** | **[v1_delete_options_t](v1_delete_options.md) \*** | | [optional] + +### Return type + +[v1_status_t](v1_status.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_getAPIResources** +```c +// get available resources +// +v1_api_resource_list_t* StoragemigrationV1alpha1API_getAPIResources(apiClient_t *apiClient); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | + +### Return type + +[v1_api_resource_list_t](v1_api_resource_list.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_listStorageVersionMigration** +```c +// list or watch objects of kind StorageVersionMigration +// +v1alpha1_storage_version_migration_list_t* StoragemigrationV1alpha1API_listStorageVersionMigration(apiClient_t *apiClient, char *pretty, int *allowWatchBookmarks, char *_continue, char *fieldSelector, char *labelSelector, int *limit, char *resourceVersion, char *resourceVersionMatch, int *sendInitialEvents, int *timeoutSeconds, int *watch); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**allowWatchBookmarks** | **int \*** | allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored. | [optional] +**_continue** | **char \*** | The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\". This field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications. | [optional] +**fieldSelector** | **char \*** | A selector to restrict the list of returned objects by their fields. Defaults to everything. | [optional] +**labelSelector** | **char \*** | A selector to restrict the list of returned objects by their labels. Defaults to everything. | [optional] +**limit** | **int \*** | limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true. The server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned. | [optional] +**resourceVersion** | **char \*** | resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**resourceVersionMatch** | **char \*** | resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details. Defaults to unset | [optional] +**sendInitialEvents** | **int \*** | `sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched. When `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan is interpreted as \"data at least as new as the provided `resourceVersion`\" and the bookmark event is send when the state is synced to a `resourceVersion` at least as fresh as the one provided by the ListOptions. If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the bookmark event is send when the state is synced at least to the moment when request started being processed. - `resourceVersionMatch` set to any other value or unset Invalid error is returned. Defaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise. | [optional] +**timeoutSeconds** | **int \*** | Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity. | [optional] +**watch** | **int \*** | Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion. | [optional] + +### Return type + +[v1alpha1_storage_version_migration_list_t](v1alpha1_storage_version_migration_list.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf, application/json;stream=watch, application/vnd.kubernetes.protobuf;stream=watch + +[[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) + +# **StoragemigrationV1alpha1API_patchStorageVersionMigration** +```c +// partially update the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* StoragemigrationV1alpha1API_patchStorageVersionMigration(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the StorageVersionMigration | +**body** | **[object_t](object.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch). | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] +**force** | **int \*** | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests. | [optional] + +### Return type + +[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json, application/apply-patch+yaml + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_patchStorageVersionMigrationStatus** +```c +// partially update status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* StoragemigrationV1alpha1API_patchStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, object_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation, int *force); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the StorageVersionMigration | +**body** | **[object_t](object.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch). | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] +**force** | **int \*** | Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests. | [optional] + +### Return type + +[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: application/json-patch+json, application/merge-patch+json, application/strategic-merge-patch+json, application/apply-patch+yaml + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_readStorageVersionMigration** +```c +// read the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* StoragemigrationV1alpha1API_readStorageVersionMigration(apiClient_t *apiClient, char *name, char *pretty); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the StorageVersionMigration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] + +### Return type + +[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_readStorageVersionMigrationStatus** +```c +// read status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* StoragemigrationV1alpha1API_readStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, char *pretty); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the StorageVersionMigration | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] + +### Return type + +[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_replaceStorageVersionMigration** +```c +// replace the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* StoragemigrationV1alpha1API_replaceStorageVersionMigration(apiClient_t *apiClient, char *name, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the StorageVersionMigration | +**body** | **[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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) + +# **StoragemigrationV1alpha1API_replaceStorageVersionMigrationStatus** +```c +// replace status of the specified StorageVersionMigration +// +v1alpha1_storage_version_migration_t* StoragemigrationV1alpha1API_replaceStorageVersionMigrationStatus(apiClient_t *apiClient, char *name, v1alpha1_storage_version_migration_t *body, char *pretty, char *dryRun, char *fieldManager, char *fieldValidation); +``` + +### Parameters +Name | Type | Description | Notes +------------- | ------------- | ------------- | ------------- +**apiClient** | **apiClient_t \*** | context containing the client configuration | +**name** | **char \*** | name of the StorageVersionMigration | +**body** | **[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) \*** | | +**pretty** | **char \*** | If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget). | [optional] +**dryRun** | **char \*** | When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed | [optional] +**fieldManager** | **char \*** | fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. | [optional] +**fieldValidation** | **char \*** | fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered. | [optional] + +### Return type + +[v1alpha1_storage_version_migration_t](v1alpha1_storage_version_migration.md) * + + +### Authorization + +[BearerToken](../README.md#BearerToken) + +### HTTP request headers + + - **Content-Type**: Not defined + - **Accept**: application/json, application/yaml, application/vnd.kubernetes.protobuf + +[[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/kubernetes/docs/v1_app_armor_profile.md b/kubernetes/docs/v1_app_armor_profile.md new file mode 100644 index 0000000..d12c954 --- /dev/null +++ b/kubernetes/docs/v1_app_armor_profile.md @@ -0,0 +1,11 @@ +# v1_app_armor_profile_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**localhost_profile** | **char \*** | localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \"Localhost\". | [optional] +**type** | **char \*** | type indicates which kind of AppArmor profile will be applied. Valid options are: Localhost - a profile pre-loaded on the node. RuntimeDefault - the container runtime's default profile. Unconfined - no AppArmor enforcement. | + +[[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/kubernetes/docs/v1_audit_annotation.md b/kubernetes/docs/v1_audit_annotation.md new file mode 100644 index 0000000..bdd7e07 --- /dev/null +++ b/kubernetes/docs/v1_audit_annotation.md @@ -0,0 +1,11 @@ +# v1_audit_annotation_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**key** | **char \*** | key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: \"{ValidatingAdmissionPolicy name}/{key}\". If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. Required. | +**value_expression** | **char \*** | valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. Required. | + +[[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/kubernetes/docs/v1_config_map_env_source.md b/kubernetes/docs/v1_config_map_env_source.md index 3fdeee6..6d291ae 100644 --- a/kubernetes/docs/v1_config_map_env_source.md +++ b/kubernetes/docs/v1_config_map_env_source.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**name** | **char \*** | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] +**name** | **char \*** | Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] **optional** | **int** | Specify whether the ConfigMap must be defined | [optional] [[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/kubernetes/docs/v1_config_map_key_selector.md b/kubernetes/docs/v1_config_map_key_selector.md index f0a2eed..e895f49 100644 --- a/kubernetes/docs/v1_config_map_key_selector.md +++ b/kubernetes/docs/v1_config_map_key_selector.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **key** | **char \*** | The key to select. | -**name** | **char \*** | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] +**name** | **char \*** | Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] **optional** | **int** | Specify whether the ConfigMap or its key must be defined | [optional] [[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/kubernetes/docs/v1_config_map_projection.md b/kubernetes/docs/v1_config_map_projection.md index 37037ec..7608f05 100644 --- a/kubernetes/docs/v1_config_map_projection.md +++ b/kubernetes/docs/v1_config_map_projection.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **items** | [**list_t**](v1_key_to_path.md) \* | items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. | [optional] -**name** | **char \*** | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] +**name** | **char \*** | Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] **optional** | **int** | optional specify whether the ConfigMap or its keys must be defined | [optional] [[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/kubernetes/docs/v1_config_map_volume_source.md b/kubernetes/docs/v1_config_map_volume_source.md index 44e7002..d81dfa3 100644 --- a/kubernetes/docs/v1_config_map_volume_source.md +++ b/kubernetes/docs/v1_config_map_volume_source.md @@ -5,7 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **default_mode** | **int** | defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. | [optional] **items** | [**list_t**](v1_key_to_path.md) \* | items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. | [optional] -**name** | **char \*** | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] +**name** | **char \*** | Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] **optional** | **int** | optional specify whether the ConfigMap or its keys must be defined | [optional] [[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/kubernetes/docs/v1_container_status.md b/kubernetes/docs/v1_container_status.md index ecd6366..9a84cc6 100644 --- a/kubernetes/docs/v1_container_status.md +++ b/kubernetes/docs/v1_container_status.md @@ -14,6 +14,7 @@ Name | Type | Description | Notes **restart_count** | **int** | RestartCount holds the number of times the container has been restarted. Kubelet makes an effort to always increment the value, but there are cases when the state may be lost due to node restarts and then the value may be reset to 0. The value is never negative. | **started** | **int** | Started indicates whether the container has finished its postStart lifecycle hook and passed its startup probe. Initialized as false, becomes true after startupProbe is considered successful. Resets to false when the container is restarted, or if kubelet loses state temporarily. In both cases, startup probes will run again. Is always true when no startupProbe is defined and container is running and has passed the postStart lifecycle hook. The null value must be treated the same as false. | [optional] **state** | [**v1_container_state_t**](v1_container_state.md) \* | | [optional] +**volume_mounts** | [**list_t**](v1_volume_mount_status.md) \* | Status of volume mounts. | [optional] [[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/kubernetes/docs/v1_csi_driver_spec.md b/kubernetes/docs/v1_csi_driver_spec.md index 32cb6e3..8fd8807 100644 --- a/kubernetes/docs/v1_csi_driver_spec.md +++ b/kubernetes/docs/v1_csi_driver_spec.md @@ -4,8 +4,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **attach_required** | **int** | attachRequired indicates this CSI volume driver requires an attach operation (because it implements the CSI ControllerPublishVolume() method), and that the Kubernetes attach detach controller should call the attach volume interface which checks the volumeattachment status and waits until the volume is attached before proceeding to mounting. The CSI external-attacher coordinates with CSI volume driver and updates the volumeattachment status when the attach operation is complete. If the CSIDriverRegistry feature gate is enabled and the value is specified to false, the attach operation will be skipped. Otherwise the attach operation will be called. This field is immutable. | [optional] -**fs_group_policy** | **char \*** | fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field is immutable. Defaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce. | [optional] -**pod_info_on_mount** | **int** | podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume defined by a CSIVolumeSource, otherwise \"false\" \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver. This field is immutable. | [optional] +**fs_group_policy** | **char \*** | fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details. This field was immutable in Kubernetes < 1.29 and now is mutable. Defaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce. | [optional] +**pod_info_on_mount** | **int** | podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false. The CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext. The following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume defined by a CSIVolumeSource, otherwise \"false\" \"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver. This field was immutable in Kubernetes < 1.29 and now is mutable. | [optional] **requires_republish** | **int** | requiresRepublish indicates the CSI driver wants `NodePublishVolume` being periodically called to reflect any possible change in the mounted volume. This field defaults to false. Note: After a successful initial NodePublishVolume call, subsequent calls to NodePublishVolume should only update the contents of the volume. New mount points will not be seen by a running container. | [optional] **se_linux_mount** | **int** | seLinuxMount specifies if the CSI driver supports \"-o context\" mount option. When \"true\", the CSI driver must ensure that all volumes provided by this CSI driver can be mounted separately with different `-o context` options. This is typical for storage backends that provide volumes as filesystems on block devices or as independent shared volumes. Kubernetes will call NodeStage / NodePublish with \"-o context=xyz\" mount option when mounting a ReadWriteOncePod volume used in Pod that has explicitly set SELinux context. In the future, it may be expanded to other volume AccessModes. In any case, Kubernetes will ensure that the volume is mounted only with a single SELinux context. When \"false\", Kubernetes won't pass any special SELinux mount options to the driver. This is typical for volumes that represent subdirectories of a bigger shared filesystem. Default is \"false\". | [optional] **storage_capacity** | **int** | storageCapacity indicates that the CSI volume driver wants pod scheduling to consider the storage capacity that the driver deployment will report by creating CSIStorageCapacity objects with capacity information, if set to true. The check can be enabled immediately when deploying a driver. In that case, provisioning new volumes with late binding will pause until the driver deployment has published some suitable CSIStorageCapacity object. Alternatively, the driver can be deployed with the field unset or false and it can be flipped later when storage capacity information has been published. This field was immutable in Kubernetes <= 1.22 and now is mutable. | [optional] diff --git a/kubernetes/docs/v1_custom_resource_definition_version.md b/kubernetes/docs/v1_custom_resource_definition_version.md index 7241dad..cbc0c97 100644 --- a/kubernetes/docs/v1_custom_resource_definition_version.md +++ b/kubernetes/docs/v1_custom_resource_definition_version.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **deprecation_warning** | **char \*** | deprecationWarning overrides the default warning returned to API clients. May only be set when `deprecated` is true. The default warning indicates this version is deprecated and recommends use of the newest served version of equal or greater stability, if one exists. | [optional] **name** | **char \*** | name is the version name, e.g. “v1”, “v2beta1”, etc. The custom resources are served under this version at `/apis/<group>/<version>/...` if `served` is true. | **schema** | [**v1_custom_resource_validation_t**](v1_custom_resource_validation.md) \* | | [optional] +**selectable_fields** | [**list_t**](v1_selectable_field.md) \* | selectableFields specifies paths to fields that may be used as field selectors. A maximum of 8 selectable fields are allowed. See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors | [optional] **served** | **int** | served is a flag enabling/disabling this version from being served via REST APIs | **storage** | **int** | storage indicates this version should be used when persisting custom resources to storage. There must be exactly one version with storage=true. | **subresources** | [**v1_custom_resource_subresources_t**](v1_custom_resource_subresources.md) \* | | [optional] diff --git a/kubernetes/docs/v1_expression_warning.md b/kubernetes/docs/v1_expression_warning.md new file mode 100644 index 0000000..624f9ff --- /dev/null +++ b/kubernetes/docs/v1_expression_warning.md @@ -0,0 +1,11 @@ +# v1_expression_warning_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**field_ref** | **char \*** | The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is \"spec.validations[0].expression\" | +**warning** | **char \*** | The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. | + +[[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/kubernetes/docs/v1_host_alias.md b/kubernetes/docs/v1_host_alias.md index 6d90623..a0ed958 100644 --- a/kubernetes/docs/v1_host_alias.md +++ b/kubernetes/docs/v1_host_alias.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **hostnames** | **list_t \*** | Hostnames for the above IP address. | [optional] -**ip** | **char \*** | IP address of the host file entry. | [optional] +**ip** | **char \*** | IP address of the host file entry. | [[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/kubernetes/docs/v1_job_spec.md b/kubernetes/docs/v1_job_spec.md index 590c2b0..d417144 100644 --- a/kubernetes/docs/v1_job_spec.md +++ b/kubernetes/docs/v1_job_spec.md @@ -8,12 +8,14 @@ Name | Type | Description | Notes **backoff_limit_per_index** | **int** | Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). | [optional] **completion_mode** | **char \*** | completionMode specifies how Pod completions are tracked. It can be `NonIndexed` (default) or `Indexed`. `NonIndexed` means that the Job is considered complete when there have been .spec.completions successfully completed Pods. Each Pod completion is homologous to each other. `Indexed` means that the Pods of a Job get an associated completion index from 0 to (.spec.completions - 1), available in the annotation batch.kubernetes.io/job-completion-index. The Job is considered complete when there is one successfully completed Pod for each index. When value is `Indexed`, .spec.completions must be specified and `.spec.parallelism` must be less than or equal to 10^5. In addition, The Pod name takes the form `$(job-name)-$(index)-$(random-string)`, the Pod hostname takes the form `$(job-name)-$(index)`. More completion modes can be added in the future. If the Job controller observes a mode that it doesn't recognize, which is possible during upgrades due to version skew, the controller skips updates for the Job. | [optional] **completions** | **int** | Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ | [optional] +**managed_by** | **char \*** | ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first \"/\" must be a valid subdomain as defined by RFC 1123. All characters trailing the first \"/\" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 64 characters. This field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default). | [optional] **manual_selector** | **int** | manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector | [optional] **max_failed_indexes** | **int** | Specifies the maximal number of failed indexes before marking the Job as failed, when backoffLimitPerIndex is set. Once the number of failed indexes exceeds this number the entire Job is marked as Failed and its execution is terminated. When left as null the job continues execution of all of its indexes and is marked with the `Complete` Job condition. It can only be specified when backoffLimitPerIndex is set. It can be null or up to completions. It is required and must be less than or equal to 10^4 when is completions greater than 10^5. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). | [optional] **parallelism** | **int** | Specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when ((.spec.completions - .status.successful) < .spec.parallelism), i.e. when the work left to do is less than max parallelism. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ | [optional] **pod_failure_policy** | [**v1_pod_failure_policy_t**](v1_pod_failure_policy.md) \* | | [optional] **pod_replacement_policy** | **char \*** | podReplacementPolicy specifies when to create replacement Pods. Possible values are: - TerminatingOrFailed means that we recreate pods when they are terminating (has a metadata.deletionTimestamp) or failed. - Failed means to wait until a previously created Pod is fully terminated (has phase Failed or Succeeded) before creating a replacement Pod. When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. | [optional] **selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] +**success_policy** | [**v1_success_policy_t**](v1_success_policy.md) \* | | [optional] **suspend** | **int** | suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false. | [optional] **_template** | [**v1_pod_template_spec_t**](v1_pod_template_spec.md) \* | | **ttl_seconds_after_finished** | **int** | ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. | [optional] diff --git a/kubernetes/docs/v1_job_status.md b/kubernetes/docs/v1_job_status.md index 07dbbbc..341291b 100644 --- a/kubernetes/docs/v1_job_status.md +++ b/kubernetes/docs/v1_job_status.md @@ -3,15 +3,15 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**active** | **int** | The number of pending and running pods. | [optional] +**active** | **int** | The number of pending and running pods which are not terminating (without a deletionTimestamp). The value is zero for finished jobs. | [optional] **completed_indexes** | **char \*** | completedIndexes holds the completed indexes when .spec.completionMode = \"Indexed\" in a text format. The indexes are represented as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". | [optional] -**completion_time** | **char \*** | Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully. | [optional] -**conditions** | [**list_t**](v1_job_condition.md) \* | The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ | [optional] -**failed** | **int** | The number of pods which reached phase Failed. | [optional] -**failed_indexes** | **char \*** | FailedIndexes holds the failed indexes when backoffLimitPerIndex=true. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). | [optional] +**completion_time** | **char \*** | Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is set when the job finishes successfully, and only then. The value cannot be updated or removed. The value indicates the same or later point in time as the startTime field. | [optional] +**conditions** | [**list_t**](v1_job_condition.md) \* | The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true. A job is considered finished when it is in a terminal condition, either \"Complete\" or \"Failed\". A Job cannot have both the \"Complete\" and \"Failed\" conditions. Additionally, it cannot be in the \"Complete\" and \"FailureTarget\" conditions. The \"Complete\", \"Failed\" and \"FailureTarget\" conditions cannot be disabled. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ | [optional] +**failed** | **int** | The number of pods which reached phase Failed. The value increases monotonically. | [optional] +**failed_indexes** | **char \*** | FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". The set of failed indexes cannot overlap with the set of completed indexes. This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default). | [optional] **ready** | **int** | The number of pods which have a Ready condition. | [optional] -**start_time** | **char \*** | Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC. | [optional] -**succeeded** | **int** | The number of pods which reached phase Succeeded. | [optional] +**start_time** | **char \*** | Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC. Once set, the field can only be removed when the job is suspended. The field cannot be modified while the job is unsuspended or finished. | [optional] +**succeeded** | **int** | The number of pods which reached phase Succeeded. The value increases monotonically for a given spec. However, it may decrease in reaction to scale down of elastic indexed jobs. | [optional] **terminating** | **int** | The number of pods which are terminating (in phase Pending or Running and have a deletionTimestamp). This field is beta-level. The job controller populates the field when the feature gate JobPodReplacementPolicy is enabled (enabled by default). | [optional] **uncounted_terminated_pods** | [**v1_uncounted_terminated_pods_t**](v1_uncounted_terminated_pods.md) \* | | [optional] diff --git a/kubernetes/docs/v1_local_object_reference.md b/kubernetes/docs/v1_local_object_reference.md index efb2da1..a866647 100644 --- a/kubernetes/docs/v1_local_object_reference.md +++ b/kubernetes/docs/v1_local_object_reference.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**name** | **char \*** | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] +**name** | **char \*** | Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] [[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/kubernetes/docs/v1_match_resources.md b/kubernetes/docs/v1_match_resources.md new file mode 100644 index 0000000..6cc94cd --- /dev/null +++ b/kubernetes/docs/v1_match_resources.md @@ -0,0 +1,14 @@ +# v1_match_resources_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**exclude_resource_rules** | [**list_t**](v1_named_rule_with_operations.md) \* | ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) | [optional] +**match_policy** | **char \*** | matchPolicy defines how the \"MatchResources\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\". - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. Defaults to \"Equivalent\" | [optional] +**namespace_selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] +**object_selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] +**resource_rules** | [**list_t**](v1_named_rule_with_operations.md) \* | ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. | [optional] + +[[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/kubernetes/docs/v1_mutating_webhook.md b/kubernetes/docs/v1_mutating_webhook.md index ce14f22..c346e7a 100644 --- a/kubernetes/docs/v1_mutating_webhook.md +++ b/kubernetes/docs/v1_mutating_webhook.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes **admission_review_versions** | **list_t \*** | AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. | **client_config** | [**admissionregistration_v1_webhook_client_config_t**](admissionregistration_v1_webhook_client_config.md) \* | | **failure_policy** | **char \*** | FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail. | [optional] -**match_conditions** | [**list_t**](v1_match_condition.md) \* | MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped. 2. If ALL matchConditions evaluate to TRUE, the webhook is called. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the error is ignored and the webhook is skipped This is a beta feature and managed by the AdmissionWebhookMatchConditions feature gate. | [optional] +**match_conditions** | [**list_t**](v1_match_condition.md) \* | MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped. 2. If ALL matchConditions evaluate to TRUE, the webhook is called. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the error is ignored and the webhook is skipped | [optional] **match_policy** | **char \*** | matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\". - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook. - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook. Defaults to \"Equivalent\" | [optional] **name** | **char \*** | The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required. | **namespace_selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] diff --git a/kubernetes/docs/v1_named_rule_with_operations.md b/kubernetes/docs/v1_named_rule_with_operations.md new file mode 100644 index 0000000..dc1ce0a --- /dev/null +++ b/kubernetes/docs/v1_named_rule_with_operations.md @@ -0,0 +1,15 @@ +# v1_named_rule_with_operations_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_groups** | **list_t \*** | APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. | [optional] +**api_versions** | **list_t \*** | APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required. | [optional] +**operations** | **list_t \*** | Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required. | [optional] +**resource_names** | **list_t \*** | ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. | [optional] +**resources** | **list_t \*** | Resources is a list of resources this rule applies to. For example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources. If wildcard is present, the validation rule will ensure resources do not overlap with each other. Depending on the enclosing object, subresources might not be allowed. Required. | [optional] +**scope** | **char \*** | scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\". | [optional] + +[[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/kubernetes/docs/v1_node_runtime_handler.md b/kubernetes/docs/v1_node_runtime_handler.md new file mode 100644 index 0000000..a1c0693 --- /dev/null +++ b/kubernetes/docs/v1_node_runtime_handler.md @@ -0,0 +1,11 @@ +# v1_node_runtime_handler_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**features** | [**v1_node_runtime_handler_features_t**](v1_node_runtime_handler_features.md) \* | | [optional] +**name** | **char \*** | Runtime handler name. Empty for the default runtime handler. | [optional] + +[[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/kubernetes/docs/v1_node_runtime_handler_features.md b/kubernetes/docs/v1_node_runtime_handler_features.md new file mode 100644 index 0000000..bd57fca --- /dev/null +++ b/kubernetes/docs/v1_node_runtime_handler_features.md @@ -0,0 +1,10 @@ +# v1_node_runtime_handler_features_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**recursive_read_only_mounts** | **int** | RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts. | [optional] + +[[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/kubernetes/docs/v1_node_status.md b/kubernetes/docs/v1_node_status.md index a57d77f..d0b95e2 100644 --- a/kubernetes/docs/v1_node_status.md +++ b/kubernetes/docs/v1_node_status.md @@ -12,6 +12,7 @@ Name | Type | Description | Notes **images** | [**list_t**](v1_container_image.md) \* | List of container images on this node | [optional] **node_info** | [**v1_node_system_info_t**](v1_node_system_info.md) \* | | [optional] **phase** | **char \*** | NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated. | [optional] +**runtime_handlers** | [**list_t**](v1_node_runtime_handler.md) \* | The available runtime handlers. | [optional] **volumes_attached** | [**list_t**](v1_attached_volume.md) \* | List of volumes that are attached to the node. | [optional] **volumes_in_use** | **list_t \*** | List of attachable volumes in use (mounted) by the node. | [optional] diff --git a/kubernetes/docs/v1_param_kind.md b/kubernetes/docs/v1_param_kind.md new file mode 100644 index 0000000..03c84cf --- /dev/null +++ b/kubernetes/docs/v1_param_kind.md @@ -0,0 +1,11 @@ +# v1_param_kind_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | APIVersion is the API group version the resources belong to. In format of \"group/version\". Required. | [optional] +**kind** | **char \*** | Kind is the API kind the resources belong to. Required. | [optional] + +[[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/kubernetes/docs/v1_param_ref.md b/kubernetes/docs/v1_param_ref.md new file mode 100644 index 0000000..741d212 --- /dev/null +++ b/kubernetes/docs/v1_param_ref.md @@ -0,0 +1,13 @@ +# v1_param_ref_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **char \*** | name is the name of the resource being referenced. One of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset. A single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped. | [optional] +**_namespace** | **char \*** | namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields. A per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty. - If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error. - If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error. | [optional] +**parameter_not_found_action** | **char \*** | `parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy. Allowed values are `Allow` or `Deny` Required | [optional] +**selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] + +[[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/kubernetes/docs/v1_persistent_volume_claim_condition.md b/kubernetes/docs/v1_persistent_volume_claim_condition.md index 58fb599..96228b9 100644 --- a/kubernetes/docs/v1_persistent_volume_claim_condition.md +++ b/kubernetes/docs/v1_persistent_volume_claim_condition.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes **last_probe_time** | **char \*** | lastProbeTime is the time we probed the condition. | [optional] **last_transition_time** | **char \*** | lastTransitionTime is the time the condition transitioned from one status to another. | [optional] **message** | **char \*** | message is the human-readable message indicating details about last transition. | [optional] -**reason** | **char \*** | reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized. | [optional] +**reason** | **char \*** | reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"Resizing\" that means the underlying persistent volume is being resized. | [optional] **status** | **char \*** | | **type** | **char \*** | | diff --git a/kubernetes/docs/v1_persistent_volume_claim_spec.md b/kubernetes/docs/v1_persistent_volume_claim_spec.md index dc08821..585b773 100644 --- a/kubernetes/docs/v1_persistent_volume_claim_spec.md +++ b/kubernetes/docs/v1_persistent_volume_claim_spec.md @@ -9,7 +9,7 @@ Name | Type | Description | Notes **resources** | [**v1_volume_resource_requirements_t**](v1_volume_resource_requirements.md) \* | | [optional] **selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] **storage_class_name** | **char \*** | storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 | [optional] -**volume_attributes_class_name** | **char \*** | volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. | [optional] +**volume_attributes_class_name** | **char \*** | volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled. | [optional] **volume_mode** | **char \*** | volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. | [optional] **volume_name** | **char \*** | volumeName is the binding reference to the PersistentVolume backing this claim. | [optional] diff --git a/kubernetes/docs/v1_persistent_volume_claim_status.md b/kubernetes/docs/v1_persistent_volume_claim_status.md index cd017be..4118fbd 100644 --- a/kubernetes/docs/v1_persistent_volume_claim_status.md +++ b/kubernetes/docs/v1_persistent_volume_claim_status.md @@ -7,7 +7,7 @@ Name | Type | Description | Notes **allocated_resource_statuses** | **list_t*** | allocatedResourceStatuses stores status of resource being resized for the given PVC. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. ClaimResourceStatus can be in any of following states: - ControllerResizeInProgress: State set when resize controller starts resizing the volume in control-plane. - ControllerResizeFailed: State set when resize has failed in resize controller with a terminal error. - NodeResizePending: State set when resize controller has finished resizing the volume but further resizing of volume is needed on the node. - NodeResizeInProgress: State set when kubelet starts resizing the volume. - NodeResizeFailed: State set when resizing has failed in kubelet with a terminal error. Transient errors don't set NodeResizeFailed. For example: if expanding a PVC for more capacity - this field can be one of the following states: - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"ControllerResizeFailed\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizePending\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeInProgress\" - pvc.status.allocatedResourceStatus['storage'] = \"NodeResizeFailed\" When this field is not set, it means that no resize operation is in progress for the given PVC. A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. | [optional] **allocated_resources** | **list_t*** | allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: * Un-prefixed keys: - storage - the capacity of the volume. * Custom resources must use implementation-defined prefixed names such as \"example.com/my-custom-resource\" Apart from above values - keys that are unprefixed or have kubernetes.io prefix are considered reserved and hence may not be used. Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. | [optional] **capacity** | **list_t*** | capacity represents the actual resources of the underlying volume. | [optional] -**conditions** | [**list_t**](v1_persistent_volume_claim_condition.md) \* | conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'. | [optional] +**conditions** | [**list_t**](v1_persistent_volume_claim_condition.md) \* | conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'. | [optional] **current_volume_attributes_class_name** | **char \*** | currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is an alpha field and requires enabling VolumeAttributesClass feature. | [optional] **modify_volume_status** | [**v1_modify_volume_status_t**](v1_modify_volume_status.md) \* | | [optional] **phase** | **char \*** | phase represents the current phase of PersistentVolumeClaim. | [optional] diff --git a/kubernetes/docs/v1_persistent_volume_status.md b/kubernetes/docs/v1_persistent_volume_status.md index 2a7f231..4e1fef6 100644 --- a/kubernetes/docs/v1_persistent_volume_status.md +++ b/kubernetes/docs/v1_persistent_volume_status.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**last_phase_transition_time** | **char \*** | lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions. This is an alpha field and requires enabling PersistentVolumeLastPhaseTransitionTime feature. | [optional] +**last_phase_transition_time** | **char \*** | lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions. This is a beta field and requires the PersistentVolumeLastPhaseTransitionTime feature to be enabled (enabled by default). | [optional] **message** | **char \*** | message is a human-readable message indicating details about why the volume is in this state. | [optional] **phase** | **char \*** | phase indicates if a volume is available, bound to a claim, or released by a claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#phase | [optional] **reason** | **char \*** | reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI. | [optional] diff --git a/kubernetes/docs/v1_pod_affinity_term.md b/kubernetes/docs/v1_pod_affinity_term.md index 17d54e3..62b933c 100644 --- a/kubernetes/docs/v1_pod_affinity_term.md +++ b/kubernetes/docs/v1_pod_affinity_term.md @@ -4,8 +4,8 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **label_selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] -**match_label_keys** | **list_t \*** | MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | [optional] -**mismatch_label_keys** | **list_t \*** | MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | [optional] +**match_label_keys** | **list_t \*** | MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | [optional] +**mismatch_label_keys** | **list_t \*** | MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. | [optional] **namespace_selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] **namespaces** | **list_t \*** | namespaces specifies a static list of namespace names that the term applies to. The term is applied to the union of the namespaces listed in this field and the ones selected by namespaceSelector. null or empty namespaces list and null namespaceSelector means \"this pod's namespace\". | [optional] **topology_key** | **char \*** | This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed. | diff --git a/kubernetes/docs/v1_pod_security_context.md b/kubernetes/docs/v1_pod_security_context.md index 67b6c2d..b3f2097 100644 --- a/kubernetes/docs/v1_pod_security_context.md +++ b/kubernetes/docs/v1_pod_security_context.md @@ -3,6 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- +**app_armor_profile** | [**v1_app_armor_profile_t**](v1_app_armor_profile.md) \* | | [optional] **fs_group** | **long** | A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod: 1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw---- If unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows. | [optional] **fs_group_change_policy** | **char \*** | fsGroupChangePolicy defines behavior of changing ownership and permission of the volume before being exposed inside Pod. This field will only apply to volume types which support fsGroup based ownership(and permissions). It will have no effect on ephemeral volume types such as: secret, configmaps and emptydir. Valid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used. Note that this field cannot be set when spec.os.name is windows. | [optional] **run_as_group** | **long** | The GID to run the entrypoint of the container process. Uses runtime default if unset. May also be set in SecurityContext. If set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence for that container. Note that this field cannot be set when spec.os.name is windows. | [optional] diff --git a/kubernetes/docs/v1_pod_spec.md b/kubernetes/docs/v1_pod_spec.md index 30049d7..15724c0 100644 --- a/kubernetes/docs/v1_pod_spec.md +++ b/kubernetes/docs/v1_pod_spec.md @@ -11,7 +11,7 @@ Name | Type | Description | Notes **dns_policy** | **char \*** | Set DNS policy for the pod. Defaults to \"ClusterFirst\". Valid values are 'ClusterFirstWithHostNet', 'ClusterFirst', 'Default' or 'None'. DNS parameters given in DNSConfig will be merged with the policy selected with DNSPolicy. To have DNS options set along with hostNetwork, you have to specify DNS policy explicitly to 'ClusterFirstWithHostNet'. | [optional] **enable_service_links** | **int** | EnableServiceLinks indicates whether information about services should be injected into pod's environment variables, matching the syntax of Docker links. Optional: Defaults to true. | [optional] **ephemeral_containers** | [**list_t**](v1_ephemeral_container.md) \* | List of ephemeral containers run in this pod. Ephemeral containers may be run in an existing pod to perform user-initiated actions such as debugging. This list cannot be specified when creating a pod, and it cannot be modified by updating the pod spec. In order to add an ephemeral container to an existing pod, use the pod's ephemeralcontainers subresource. | [optional] -**host_aliases** | [**list_t**](v1_host_alias.md) \* | HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods. | [optional] +**host_aliases** | [**list_t**](v1_host_alias.md) \* | HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. | [optional] **host_ipc** | **int** | Use the host's ipc namespace. Optional: Default to false. | [optional] **host_network** | **int** | Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. | [optional] **host_pid** | **int** | Use the host's pid namespace. Optional: Default to false. | [optional] @@ -31,9 +31,9 @@ Name | Type | Description | Notes **restart_policy** | **char \*** | Restart policy for all containers within the pod. One of Always, OnFailure, Never. In some contexts, only a subset of those values may be permitted. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy | [optional] **runtime_class_name** | **char \*** | RuntimeClassName refers to a RuntimeClass object in the node.k8s.io group, which should be used to run this pod. If no RuntimeClass resource matches the named class, the pod will not be run. If unset or empty, the \"legacy\" RuntimeClass will be used, which is an implicit class with an empty definition that uses the default runtime handler. More info: https://git.k8s.io/enhancements/keps/sig-node/585-runtime-class | [optional] **scheduler_name** | **char \*** | If specified, the pod will be dispatched by specified scheduler. If not specified, the pod will be dispatched by default scheduler. | [optional] -**scheduling_gates** | [**list_t**](v1_pod_scheduling_gate.md) \* | SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. SchedulingGates can only be set at pod creation time, and be removed only afterwards. This is a beta feature enabled by the PodSchedulingReadiness feature gate. | [optional] +**scheduling_gates** | [**list_t**](v1_pod_scheduling_gate.md) \* | SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod. SchedulingGates can only be set at pod creation time, and be removed only afterwards. | [optional] **security_context** | [**v1_pod_security_context_t**](v1_pod_security_context.md) \* | | [optional] -**service_account** | **char \*** | DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. | [optional] +**service_account** | **char \*** | DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead. | [optional] **service_account_name** | **char \*** | ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/ | [optional] **set_hostname_as_fqdn** | **int** | If true the pod's hostname will be configured as the pod's FQDN, rather than the leaf name (the default). In Linux containers, this means setting the FQDN in the hostname field of the kernel (the nodename field of struct utsname). In Windows containers, this means setting the registry value of hostname for the registry key HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters to FQDN. If a pod does not have FQDN, this has no effect. Default to false. | [optional] **share_process_namespace** | **int** | Share a single process namespace between all of the containers in a pod. When this is set containers will be able to view and signal processes from other containers in the same pod, and the first process in each container will not be assigned PID 1. HostPID and ShareProcessNamespace cannot both be set. Optional: Default to false. | [optional] diff --git a/kubernetes/docs/v1_secret_env_source.md b/kubernetes/docs/v1_secret_env_source.md index 12a85ed..1c380b7 100644 --- a/kubernetes/docs/v1_secret_env_source.md +++ b/kubernetes/docs/v1_secret_env_source.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**name** | **char \*** | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] +**name** | **char \*** | Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] **optional** | **int** | Specify whether the Secret must be defined | [optional] [[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/kubernetes/docs/v1_secret_key_selector.md b/kubernetes/docs/v1_secret_key_selector.md index 78ec001..b48f03e 100644 --- a/kubernetes/docs/v1_secret_key_selector.md +++ b/kubernetes/docs/v1_secret_key_selector.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **key** | **char \*** | The key of the secret to select from. Must be a valid secret key. | -**name** | **char \*** | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] +**name** | **char \*** | Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] **optional** | **int** | Specify whether the Secret or its key must be defined | [optional] [[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/kubernetes/docs/v1_secret_projection.md b/kubernetes/docs/v1_secret_projection.md index ebf6b22..6fee9f7 100644 --- a/kubernetes/docs/v1_secret_projection.md +++ b/kubernetes/docs/v1_secret_projection.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **items** | [**list_t**](v1_key_to_path.md) \* | items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. | [optional] -**name** | **char \*** | Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] +**name** | **char \*** | Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names | [optional] **optional** | **int** | optional field specify whether the Secret or its key must be defined | [optional] [[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/kubernetes/docs/v1_security_context.md b/kubernetes/docs/v1_security_context.md index 8a05327..35a9b5b 100644 --- a/kubernetes/docs/v1_security_context.md +++ b/kubernetes/docs/v1_security_context.md @@ -4,6 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **allow_privilege_escalation** | **int** | AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows. | [optional] +**app_armor_profile** | [**v1_app_armor_profile_t**](v1_app_armor_profile.md) \* | | [optional] **capabilities** | [**v1_capabilities_t**](v1_capabilities.md) \* | | [optional] **privileged** | **int** | Run container in privileged mode. Processes in privileged containers are essentially equivalent to root on the host. Defaults to false. Note that this field cannot be set when spec.os.name is windows. | [optional] **proc_mount** | **char \*** | procMount denotes the type of proc mount to use for the containers. The default is DefaultProcMount which uses the container runtime defaults for readonly paths and masked paths. This requires the ProcMountType feature flag to be enabled. Note that this field cannot be set when spec.os.name is windows. | [optional] diff --git a/kubernetes/docs/v1_selectable_field.md b/kubernetes/docs/v1_selectable_field.md new file mode 100644 index 0000000..3a9a4c8 --- /dev/null +++ b/kubernetes/docs/v1_selectable_field.md @@ -0,0 +1,10 @@ +# v1_selectable_field_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**json_path** | **char \*** | jsonPath is a simple JSON path which is evaluated against each custom resource to produce a field selector value. Only JSON paths without the array notation are allowed. Must point to a field of type string, boolean or integer. Types with enum values and strings with formats are allowed. If jsonPath refers to absent field in a resource, the jsonPath evaluates to an empty string. Must not point to metdata fields. Required. | + +[[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/kubernetes/docs/v1_service_spec.md b/kubernetes/docs/v1_service_spec.md index 2168af7..5e26bc8 100644 --- a/kubernetes/docs/v1_service_spec.md +++ b/kubernetes/docs/v1_service_spec.md @@ -21,6 +21,7 @@ Name | Type | Description | Notes **selector** | **list_t*** | Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/ | [optional] **session_affinity** | **char \*** | Supports \"ClientIP\" and \"None\". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies | [optional] **session_affinity_config** | [**v1_session_affinity_config_t**](v1_session_affinity_config.md) \* | | [optional] +**traffic_distribution** | **char \*** | TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \"PreferClose\", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature. | [optional] **type** | **char \*** | type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types | [optional] [[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/kubernetes/docs/v1_success_policy.md b/kubernetes/docs/v1_success_policy.md new file mode 100644 index 0000000..7363352 --- /dev/null +++ b/kubernetes/docs/v1_success_policy.md @@ -0,0 +1,10 @@ +# v1_success_policy_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**rules** | [**list_t**](v1_success_policy_rule.md) \* | rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \"SucceededCriteriaMet\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \"Complete\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. | + +[[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/kubernetes/docs/v1_success_policy_rule.md b/kubernetes/docs/v1_success_policy_rule.md new file mode 100644 index 0000000..bf3d600 --- /dev/null +++ b/kubernetes/docs/v1_success_policy_rule.md @@ -0,0 +1,11 @@ +# v1_success_policy_rule_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**succeeded_count** | **int** | succeededCount specifies the minimal required size of the actual set of the succeeded indexes for the Job. When succeededCount is used along with succeededIndexes, the check is constrained only to the set of indexes specified by succeededIndexes. For example, given that succeededIndexes is \"1-4\", succeededCount is \"3\", and completed indexes are \"1\", \"3\", and \"5\", the Job isn't declared as succeeded because only \"1\" and \"3\" indexes are considered in that rules. When this field is null, this doesn't default to any value and is never evaluated at any time. When specified it needs to be a positive integer. | [optional] +**succeeded_indexes** | **char \*** | succeededIndexes specifies the set of indexes which need to be contained in the actual set of the succeeded indexes for the Job. The list of indexes must be within 0 to \".spec.completions-1\" and must not contain duplicates. At least one element is required. The indexes are represented as intervals separated by commas. The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen. The number are listed in represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". When this field is null, this field doesn't default to any value and is never evaluated at any time. | [optional] + +[[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/kubernetes/docs/v1_topology_spread_constraint.md b/kubernetes/docs/v1_topology_spread_constraint.md index 31315bc..a7b266d 100644 --- a/kubernetes/docs/v1_topology_spread_constraint.md +++ b/kubernetes/docs/v1_topology_spread_constraint.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes **label_selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] **match_label_keys** | **list_t \*** | MatchLabelKeys is a set of pod label keys to select the pods over which spreading will be calculated. The keys are used to lookup values from the incoming pod labels, those key-value labels are ANDed with labelSelector to select the group of existing pods over which spreading will be calculated for the incoming pod. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. MatchLabelKeys cannot be set when LabelSelector isn't set. Keys that don't exist in the incoming pod labels will be ignored. A null or empty list means only match against labelSelector. This is a beta field and requires the MatchLabelKeysInPodTopologySpread feature gate to be enabled (enabled by default). | [optional] **max_skew** | **int** | MaxSkew describes the degree to which pods may be unevenly distributed. When `whenUnsatisfiable=DoNotSchedule`, it is the maximum permitted difference between the number of matching pods in the target topology and the global minimum. The global minimum is the minimum number of matching pods in an eligible domain or zero if the number of eligible domains is less than MinDomains. For example, in a 3-zone cluster, MaxSkew is set to 1, and pods with the same labelSelector spread as 2/2/1: In this case, the global minimum is 1. | zone1 | zone2 | zone3 | | P P | P P | P | - if MaxSkew is 1, incoming pod can only be scheduled to zone3 to become 2/2/2; scheduling it onto zone1(zone2) would make the ActualSkew(3-1) on zone1(zone2) violate MaxSkew(1). - if MaxSkew is 2, incoming pod can be scheduled onto any zone. When `whenUnsatisfiable=ScheduleAnyway`, it is used to give higher precedence to topologies that satisfy it. It's a required field. Default value is 1 and 0 is not allowed. | -**min_domains** | **int** | MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. This is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default). | [optional] +**min_domains** | **int** | MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule. For example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew. | [optional] **node_affinity_policy** | **char \*** | NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector when calculating pod topology spread skew. Options are: - Honor: only nodes matching nodeAffinity/nodeSelector are included in the calculations. - Ignore: nodeAffinity/nodeSelector are ignored. All nodes are included in the calculations. If this value is nil, the behavior is equivalent to the Honor policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. | [optional] **node_taints_policy** | **char \*** | NodeTaintsPolicy indicates how we will treat node taints when calculating pod topology spread skew. Options are: - Honor: nodes without taints, along with tainted nodes for which the incoming pod has a toleration, are included. - Ignore: node taints are ignored. All nodes are included. If this value is nil, the behavior is equivalent to the Ignore policy. This is a beta-level feature default enabled by the NodeInclusionPolicyInPodTopologySpread feature flag. | [optional] **topology_key** | **char \*** | TopologyKey is the key of node labels. Nodes that have a label with this key and identical values are considered to be in the same topology. We consider each <key, value> as a \"bucket\", and try to put balanced number of pods into each bucket. We define a domain as a particular instance of a topology. Also, we define an eligible domain as a domain whose nodes meet the requirements of nodeAffinityPolicy and nodeTaintsPolicy. e.g. If TopologyKey is \"kubernetes.io/hostname\", each Node is a domain of that topology. And, if TopologyKey is \"topology.kubernetes.io/zone\", each zone is a domain of that topology. It's a required field. | diff --git a/kubernetes/docs/v1_type_checking.md b/kubernetes/docs/v1_type_checking.md new file mode 100644 index 0000000..292e2ef --- /dev/null +++ b/kubernetes/docs/v1_type_checking.md @@ -0,0 +1,10 @@ +# v1_type_checking_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**expression_warnings** | [**list_t**](v1_expression_warning.md) \* | The type checking warnings for each expression. | [optional] + +[[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/kubernetes/docs/v1_validating_admission_policy.md b/kubernetes/docs/v1_validating_admission_policy.md new file mode 100644 index 0000000..e6b628c --- /dev/null +++ b/kubernetes/docs/v1_validating_admission_policy.md @@ -0,0 +1,14 @@ +# v1_validating_admission_policy_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_object_meta_t**](v1_object_meta.md) \* | | [optional] +**spec** | [**v1_validating_admission_policy_spec_t**](v1_validating_admission_policy_spec.md) \* | | [optional] +**status** | [**v1_validating_admission_policy_status_t**](v1_validating_admission_policy_status.md) \* | | [optional] + +[[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/kubernetes/docs/v1_validating_admission_policy_binding.md b/kubernetes/docs/v1_validating_admission_policy_binding.md new file mode 100644 index 0000000..524301c --- /dev/null +++ b/kubernetes/docs/v1_validating_admission_policy_binding.md @@ -0,0 +1,13 @@ +# v1_validating_admission_policy_binding_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_object_meta_t**](v1_object_meta.md) \* | | [optional] +**spec** | [**v1_validating_admission_policy_binding_spec_t**](v1_validating_admission_policy_binding_spec.md) \* | | [optional] + +[[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/kubernetes/docs/v1_validating_admission_policy_binding_list.md b/kubernetes/docs/v1_validating_admission_policy_binding_list.md new file mode 100644 index 0000000..af856c9 --- /dev/null +++ b/kubernetes/docs/v1_validating_admission_policy_binding_list.md @@ -0,0 +1,13 @@ +# v1_validating_admission_policy_binding_list_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**items** | [**list_t**](v1_validating_admission_policy_binding.md) \* | List of PolicyBinding. | [optional] +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_list_meta_t**](v1_list_meta.md) \* | | [optional] + +[[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/kubernetes/docs/v1_validating_admission_policy_binding_spec.md b/kubernetes/docs/v1_validating_admission_policy_binding_spec.md new file mode 100644 index 0000000..4b4851c --- /dev/null +++ b/kubernetes/docs/v1_validating_admission_policy_binding_spec.md @@ -0,0 +1,13 @@ +# v1_validating_admission_policy_binding_spec_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**match_resources** | [**v1_match_resources_t**](v1_match_resources.md) \* | | [optional] +**param_ref** | [**v1_param_ref_t**](v1_param_ref.md) \* | | [optional] +**policy_name** | **char \*** | PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. | [optional] +**validation_actions** | **list_t \*** | validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions. Failures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy. validationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action. The supported actions values are: \"Deny\" specifies that a validation failure results in a denied request. \"Warn\" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. \"Audit\" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]\"` Clients should expect to handle additional values by ignoring any values not recognized. \"Deny\" and \"Warn\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers. Required. | [optional] + +[[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/kubernetes/docs/v1_validating_admission_policy_list.md b/kubernetes/docs/v1_validating_admission_policy_list.md new file mode 100644 index 0000000..6c06242 --- /dev/null +++ b/kubernetes/docs/v1_validating_admission_policy_list.md @@ -0,0 +1,13 @@ +# v1_validating_admission_policy_list_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**items** | [**list_t**](v1_validating_admission_policy.md) \* | List of ValidatingAdmissionPolicy. | [optional] +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_list_meta_t**](v1_list_meta.md) \* | | [optional] + +[[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/kubernetes/docs/v1_validating_admission_policy_spec.md b/kubernetes/docs/v1_validating_admission_policy_spec.md new file mode 100644 index 0000000..a72cd52 --- /dev/null +++ b/kubernetes/docs/v1_validating_admission_policy_spec.md @@ -0,0 +1,16 @@ +# v1_validating_admission_policy_spec_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**audit_annotations** | [**list_t**](v1_audit_annotation.md) \* | auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required. | [optional] +**failure_policy** | **char \*** | failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. A policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource. failurePolicy does not define how validations that evaluate to false are handled. When failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced. Allowed values are Ignore or Fail. Defaults to Fail. | [optional] +**match_conditions** | [**list_t**](v1_match_condition.md) \* | MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the policy is skipped | [optional] +**match_constraints** | [**v1_match_resources_t**](v1_match_resources.md) \* | | [optional] +**param_kind** | [**v1_param_kind_t**](v1_param_kind.md) \* | | [optional] +**validations** | [**list_t**](v1_validation.md) \* | Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required. | [optional] +**variables** | [**list_t**](v1_variable.md) \* | Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy. The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic. | [optional] + +[[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/kubernetes/docs/v1_validating_admission_policy_status.md b/kubernetes/docs/v1_validating_admission_policy_status.md new file mode 100644 index 0000000..012ef87 --- /dev/null +++ b/kubernetes/docs/v1_validating_admission_policy_status.md @@ -0,0 +1,12 @@ +# v1_validating_admission_policy_status_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**conditions** | [**list_t**](v1_condition.md) \* | The conditions represent the latest available observations of a policy's current state. | [optional] +**observed_generation** | **long** | The generation observed by the controller. | [optional] +**type_checking** | [**v1_type_checking_t**](v1_type_checking.md) \* | | [optional] + +[[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/kubernetes/docs/v1_validating_webhook.md b/kubernetes/docs/v1_validating_webhook.md index 6e03901..66d1afb 100644 --- a/kubernetes/docs/v1_validating_webhook.md +++ b/kubernetes/docs/v1_validating_webhook.md @@ -6,7 +6,7 @@ Name | Type | Description | Notes **admission_review_versions** | **list_t \*** | AdmissionReviewVersions is an ordered list of preferred `AdmissionReview` versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, validation will fail for this object. If a persisted webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail and be subject to the failure policy. | **client_config** | [**admissionregistration_v1_webhook_client_config_t**](admissionregistration_v1_webhook_client_config.md) \* | | **failure_policy** | **char \*** | FailurePolicy defines how unrecognized errors from the admission endpoint are handled - allowed values are Ignore or Fail. Defaults to Fail. | [optional] -**match_conditions** | [**list_t**](v1_match_condition.md) \* | MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped. 2. If ALL matchConditions evaluate to TRUE, the webhook is called. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the error is ignored and the webhook is skipped This is a beta feature and managed by the AdmissionWebhookMatchConditions feature gate. | [optional] +**match_conditions** | [**list_t**](v1_match_condition.md) \* | MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. The exact matching logic is (in order): 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped. 2. If ALL matchConditions evaluate to TRUE, the webhook is called. 3. If any matchCondition evaluates to an error (but none are FALSE): - If failurePolicy=Fail, reject the request - If failurePolicy=Ignore, the error is ignored and the webhook is skipped | [optional] **match_policy** | **char \*** | matchPolicy defines how the \"rules\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\". - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the webhook. - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the webhook. Defaults to \"Equivalent\" | [optional] **name** | **char \*** | The name of the admission webhook. Name should be fully qualified, e.g., imagepolicy.kubernetes.io, where \"imagepolicy\" is the name of the webhook, and kubernetes.io is the name of the organization. Required. | **namespace_selector** | [**v1_label_selector_t**](v1_label_selector.md) \* | | [optional] diff --git a/kubernetes/docs/v1_validation.md b/kubernetes/docs/v1_validation.md new file mode 100644 index 0000000..d556493 --- /dev/null +++ b/kubernetes/docs/v1_validation.md @@ -0,0 +1,13 @@ +# v1_validation_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**expression** | **char \*** | Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables: - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. For example, a variable named 'foo' can be accessed as 'variables.foo'. - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the request resource. The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are: \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\", \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\". Examples: - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"} - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"} - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"} Equality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type: - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and non-intersecting elements in `Y` are appended, retaining their partial order. - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with non-intersecting keys are appended, retaining their partial order. Required. | +**message** | **char \*** | Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \"failed Expression: {Expression}\". | [optional] +**message_expression** | **char \*** | messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \"object.x must be less than max (\"+string(params.max)+\")\" | [optional] +**reason** | **char \*** | Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\". If not set, StatusReasonInvalid is used in the response to the client. | [optional] + +[[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/kubernetes/docs/v1_variable.md b/kubernetes/docs/v1_variable.md new file mode 100644 index 0000000..945bbfc --- /dev/null +++ b/kubernetes/docs/v1_variable.md @@ -0,0 +1,11 @@ +# v1_variable_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**expression** | **char \*** | Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation. | +**name** | **char \*** | Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo` | + +[[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/kubernetes/docs/v1_volume_mount.md b/kubernetes/docs/v1_volume_mount.md index b5ed5fc..8281ab7 100644 --- a/kubernetes/docs/v1_volume_mount.md +++ b/kubernetes/docs/v1_volume_mount.md @@ -4,9 +4,10 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **mount_path** | **char \*** | Path within the container at which the volume should be mounted. Must not contain ':'. | -**mount_propagation** | **char \*** | mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. | [optional] +**mount_propagation** | **char \*** | mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None). | [optional] **name** | **char \*** | This must match the Name of a Volume. | **read_only** | **int** | Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. | [optional] +**recursive_read_only** | **char \*** | RecursiveReadOnly specifies whether read-only mounts should be handled recursively. If ReadOnly is false, this field has no meaning and must be unspecified. If ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason. If this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None). If this field is not specified, it is treated as an equivalent of Disabled. | [optional] **sub_path** | **char \*** | Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root). | [optional] **sub_path_expr** | **char \*** | Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to \"\" (volume's root). SubPathExpr and SubPath are mutually exclusive. | [optional] diff --git a/kubernetes/docs/v1_volume_mount_status.md b/kubernetes/docs/v1_volume_mount_status.md new file mode 100644 index 0000000..b0e48d2 --- /dev/null +++ b/kubernetes/docs/v1_volume_mount_status.md @@ -0,0 +1,13 @@ +# v1_volume_mount_status_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**mount_path** | **char \*** | MountPath corresponds to the original VolumeMount. | +**name** | **char \*** | Name corresponds to the name of the original VolumeMount. | +**read_only** | **int** | ReadOnly corresponds to the original VolumeMount. | [optional] +**recursive_read_only** | **char \*** | RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result. | [optional] + +[[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/kubernetes/docs/v1alpha1_group_version_resource.md b/kubernetes/docs/v1alpha1_group_version_resource.md new file mode 100644 index 0000000..205247f --- /dev/null +++ b/kubernetes/docs/v1alpha1_group_version_resource.md @@ -0,0 +1,12 @@ +# v1alpha1_group_version_resource_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**group** | **char \*** | The name of the group. | [optional] +**resource** | **char \*** | The name of the resource. | [optional] +**version** | **char \*** | The name of the version. | [optional] + +[[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/kubernetes/docs/v1alpha1_ip_address_spec.md b/kubernetes/docs/v1alpha1_ip_address_spec.md index 79f99c0..e08e7cd 100644 --- a/kubernetes/docs/v1alpha1_ip_address_spec.md +++ b/kubernetes/docs/v1alpha1_ip_address_spec.md @@ -3,7 +3,7 @@ ## Properties Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- -**parent_ref** | [**v1alpha1_parent_reference_t**](v1alpha1_parent_reference.md) \* | | [optional] +**parent_ref** | [**v1alpha1_parent_reference_t**](v1alpha1_parent_reference.md) \* | | [[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/kubernetes/docs/v1alpha1_migration_condition.md b/kubernetes/docs/v1alpha1_migration_condition.md new file mode 100644 index 0000000..4e10a6f --- /dev/null +++ b/kubernetes/docs/v1alpha1_migration_condition.md @@ -0,0 +1,14 @@ +# v1alpha1_migration_condition_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**last_update_time** | **char \*** | The last time this condition was updated. | [optional] +**message** | **char \*** | A human readable message indicating details about the transition. | [optional] +**reason** | **char \*** | The reason for the condition's last transition. | [optional] +**status** | **char \*** | Status of the condition, one of True, False, Unknown. | +**type** | **char \*** | Type of the condition. | + +[[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/kubernetes/docs/v1alpha1_parent_reference.md b/kubernetes/docs/v1alpha1_parent_reference.md index eb8be5b..48b2ca6 100644 --- a/kubernetes/docs/v1alpha1_parent_reference.md +++ b/kubernetes/docs/v1alpha1_parent_reference.md @@ -4,9 +4,9 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **group** | **char \*** | Group is the group of the object being referenced. | [optional] -**name** | **char \*** | Name is the name of the object being referenced. | [optional] +**name** | **char \*** | Name is the name of the object being referenced. | **_namespace** | **char \*** | Namespace is the namespace of the object being referenced. | [optional] -**resource** | **char \*** | Resource is the resource of the object being referenced. | [optional] +**resource** | **char \*** | Resource is the resource of the object being referenced. | [[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/kubernetes/docs/v1alpha1_storage_version_condition.md b/kubernetes/docs/v1alpha1_storage_version_condition.md index e85152e..1302337 100644 --- a/kubernetes/docs/v1alpha1_storage_version_condition.md +++ b/kubernetes/docs/v1alpha1_storage_version_condition.md @@ -4,7 +4,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **last_transition_time** | **char \*** | Last time the condition transitioned from one status to another. | [optional] -**message** | **char \*** | A human readable message indicating details about the transition. | [optional] +**message** | **char \*** | A human readable message indicating details about the transition. | **observed_generation** | **long** | If set, this represents the .metadata.generation that the condition was set based upon. | [optional] **reason** | **char \*** | The reason for the condition's last transition. | **status** | **char \*** | Status of the condition, one of True, False, Unknown. | diff --git a/kubernetes/docs/v1alpha1_storage_version_migration.md b/kubernetes/docs/v1alpha1_storage_version_migration.md new file mode 100644 index 0000000..eaeb2e4 --- /dev/null +++ b/kubernetes/docs/v1alpha1_storage_version_migration.md @@ -0,0 +1,14 @@ +# v1alpha1_storage_version_migration_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_object_meta_t**](v1_object_meta.md) \* | | [optional] +**spec** | [**v1alpha1_storage_version_migration_spec_t**](v1alpha1_storage_version_migration_spec.md) \* | | [optional] +**status** | [**v1alpha1_storage_version_migration_status_t**](v1alpha1_storage_version_migration_status.md) \* | | [optional] + +[[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/kubernetes/docs/v1alpha1_storage_version_migration_list.md b/kubernetes/docs/v1alpha1_storage_version_migration_list.md new file mode 100644 index 0000000..bc0f170 --- /dev/null +++ b/kubernetes/docs/v1alpha1_storage_version_migration_list.md @@ -0,0 +1,13 @@ +# v1alpha1_storage_version_migration_list_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**items** | [**list_t**](v1alpha1_storage_version_migration.md) \* | Items is the list of StorageVersionMigration | +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_list_meta_t**](v1_list_meta.md) \* | | [optional] + +[[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/kubernetes/docs/v1alpha1_storage_version_migration_spec.md b/kubernetes/docs/v1alpha1_storage_version_migration_spec.md new file mode 100644 index 0000000..225cc2c --- /dev/null +++ b/kubernetes/docs/v1alpha1_storage_version_migration_spec.md @@ -0,0 +1,11 @@ +# v1alpha1_storage_version_migration_spec_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**continue_token** | **char \*** | The token used in the list options to get the next chunk of objects to migrate. When the .status.conditions indicates the migration is \"Running\", users can use this token to check the progress of the migration. | [optional] +**resource** | [**v1alpha1_group_version_resource_t**](v1alpha1_group_version_resource.md) \* | | + +[[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/kubernetes/docs/v1alpha1_storage_version_migration_status.md b/kubernetes/docs/v1alpha1_storage_version_migration_status.md new file mode 100644 index 0000000..d7d5b1d --- /dev/null +++ b/kubernetes/docs/v1alpha1_storage_version_migration_status.md @@ -0,0 +1,11 @@ +# v1alpha1_storage_version_migration_status_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**conditions** | [**list_t**](v1alpha1_migration_condition.md) \* | The latest available observations of the migration's current state. | [optional] +**resource_version** | **char \*** | ResourceVersion to compare with the GC cache for performing the migration. This is the current resource version of given group, version and resource when kube-controller-manager first observes this StorageVersionMigration resource. | [optional] + +[[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/kubernetes/docs/v1alpha2_driver_allocation_result.md b/kubernetes/docs/v1alpha2_driver_allocation_result.md new file mode 100644 index 0000000..858865f --- /dev/null +++ b/kubernetes/docs/v1alpha2_driver_allocation_result.md @@ -0,0 +1,11 @@ +# v1alpha2_driver_allocation_result_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**named_resources** | [**v1alpha2_named_resources_allocation_result_t**](v1alpha2_named_resources_allocation_result.md) \* | | [optional] +**vendor_request_parameters** | [**object_t**](.md) \* | VendorRequestParameters are the per-request configuration parameters from the time that the claim was allocated. | [optional] + +[[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/kubernetes/docs/v1alpha2_driver_requests.md b/kubernetes/docs/v1alpha2_driver_requests.md new file mode 100644 index 0000000..348962a --- /dev/null +++ b/kubernetes/docs/v1alpha2_driver_requests.md @@ -0,0 +1,12 @@ +# v1alpha2_driver_requests_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**driver_name** | **char \*** | DriverName is the name used by the DRA driver kubelet plugin. | [optional] +**requests** | [**list_t**](v1alpha2_resource_request.md) \* | Requests describes all resources that are needed from the driver. | [optional] +**vendor_parameters** | [**object_t**](.md) \* | VendorParameters are arbitrary setup parameters for all requests of the claim. They are ignored while allocating the claim. | [optional] + +[[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/kubernetes/docs/v1alpha2_named_resources_allocation_result.md b/kubernetes/docs/v1alpha2_named_resources_allocation_result.md new file mode 100644 index 0000000..5d24a63 --- /dev/null +++ b/kubernetes/docs/v1alpha2_named_resources_allocation_result.md @@ -0,0 +1,10 @@ +# v1alpha2_named_resources_allocation_result_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**name** | **char \*** | Name is the name of the selected resource instance. | + +[[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/kubernetes/docs/v1alpha2_named_resources_attribute.md b/kubernetes/docs/v1alpha2_named_resources_attribute.md new file mode 100644 index 0000000..69e6573 --- /dev/null +++ b/kubernetes/docs/v1alpha2_named_resources_attribute.md @@ -0,0 +1,17 @@ +# v1alpha2_named_resources_attribute_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**_bool** | **int** | BoolValue is a true/false value. | [optional] +**_int** | **long** | IntValue is a 64-bit integer. | [optional] +**int_slice** | [**v1alpha2_named_resources_int_slice_t**](v1alpha2_named_resources_int_slice.md) \* | | [optional] +**name** | **char \*** | Name is unique identifier among all resource instances managed by the driver on the node. It must be a DNS subdomain. | +**quantity** | **char \*** | QuantityValue is a quantity. | [optional] +**string** | **char \*** | StringValue is a string. | [optional] +**string_slice** | [**v1alpha2_named_resources_string_slice_t**](v1alpha2_named_resources_string_slice.md) \* | | [optional] +**version** | **char \*** | VersionValue is a semantic version according to semver.org spec 2.0.0. | [optional] + +[[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/kubernetes/docs/v1alpha2_named_resources_filter.md b/kubernetes/docs/v1alpha2_named_resources_filter.md new file mode 100644 index 0000000..61b4fdc --- /dev/null +++ b/kubernetes/docs/v1alpha2_named_resources_filter.md @@ -0,0 +1,10 @@ +# v1alpha2_named_resources_filter_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**selector** | **char \*** | Selector is a CEL expression which must evaluate to true if a resource instance is suitable. The language is as defined in https://kubernetes.io/docs/reference/using-api/cel/ In addition, for each type NamedResourcesin AttributeValue there is a map that resolves to the corresponding value of the instance under evaluation. For example: attributes.quantity[\"a\"].isGreaterThan(quantity(\"0\")) && attributes.stringslice[\"b\"].isSorted() | + +[[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/kubernetes/docs/v1alpha2_named_resources_instance.md b/kubernetes/docs/v1alpha2_named_resources_instance.md new file mode 100644 index 0000000..7406616 --- /dev/null +++ b/kubernetes/docs/v1alpha2_named_resources_instance.md @@ -0,0 +1,11 @@ +# v1alpha2_named_resources_instance_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**attributes** | [**list_t**](v1alpha2_named_resources_attribute.md) \* | Attributes defines the attributes of this resource instance. The name of each attribute must be unique. | [optional] +**name** | **char \*** | Name is unique identifier among all resource instances managed by the driver on the node. It must be a DNS subdomain. | + +[[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/kubernetes/docs/v1alpha2_named_resources_int_slice.md b/kubernetes/docs/v1alpha2_named_resources_int_slice.md new file mode 100644 index 0000000..cef081e --- /dev/null +++ b/kubernetes/docs/v1alpha2_named_resources_int_slice.md @@ -0,0 +1,10 @@ +# v1alpha2_named_resources_int_slice_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**ints** | **list_t \*** | Ints is the slice of 64-bit integers. | + +[[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/kubernetes/docs/v1alpha2_named_resources_request.md b/kubernetes/docs/v1alpha2_named_resources_request.md new file mode 100644 index 0000000..7a8694a --- /dev/null +++ b/kubernetes/docs/v1alpha2_named_resources_request.md @@ -0,0 +1,10 @@ +# v1alpha2_named_resources_request_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**selector** | **char \*** | Selector is a CEL expression which must evaluate to true if a resource instance is suitable. The language is as defined in https://kubernetes.io/docs/reference/using-api/cel/ In addition, for each type NamedResourcesin AttributeValue there is a map that resolves to the corresponding value of the instance under evaluation. For example: attributes.quantity[\"a\"].isGreaterThan(quantity(\"0\")) && attributes.stringslice[\"b\"].isSorted() | + +[[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/kubernetes/docs/v1alpha2_named_resources_resources.md b/kubernetes/docs/v1alpha2_named_resources_resources.md new file mode 100644 index 0000000..ed75aa2 --- /dev/null +++ b/kubernetes/docs/v1alpha2_named_resources_resources.md @@ -0,0 +1,10 @@ +# v1alpha2_named_resources_resources_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**instances** | [**list_t**](v1alpha2_named_resources_instance.md) \* | The list of all individual resources instances currently available. | + +[[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/kubernetes/docs/v1alpha2_named_resources_string_slice.md b/kubernetes/docs/v1alpha2_named_resources_string_slice.md new file mode 100644 index 0000000..30c3918 --- /dev/null +++ b/kubernetes/docs/v1alpha2_named_resources_string_slice.md @@ -0,0 +1,10 @@ +# v1alpha2_named_resources_string_slice_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**strings** | **list_t \*** | Strings is the slice of strings. | + +[[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/kubernetes/docs/v1alpha2_resource_claim_parameters.md b/kubernetes/docs/v1alpha2_resource_claim_parameters.md new file mode 100644 index 0000000..c149b6f --- /dev/null +++ b/kubernetes/docs/v1alpha2_resource_claim_parameters.md @@ -0,0 +1,15 @@ +# v1alpha2_resource_claim_parameters_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**driver_requests** | [**list_t**](v1alpha2_driver_requests.md) \* | DriverRequests describes all resources that are needed for the allocated claim. A single claim may use resources coming from different drivers. For each driver, this array has at most one entry which then may have one or more per-driver requests. May be empty, in which case the claim can always be allocated. | [optional] +**generated_from** | [**v1alpha2_resource_claim_parameters_reference_t**](v1alpha2_resource_claim_parameters_reference.md) \* | | [optional] +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_object_meta_t**](v1_object_meta.md) \* | | [optional] +**shareable** | **int** | Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time. | [optional] + +[[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/kubernetes/docs/v1alpha2_resource_claim_parameters_list.md b/kubernetes/docs/v1alpha2_resource_claim_parameters_list.md new file mode 100644 index 0000000..0e06331 --- /dev/null +++ b/kubernetes/docs/v1alpha2_resource_claim_parameters_list.md @@ -0,0 +1,13 @@ +# v1alpha2_resource_claim_parameters_list_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**items** | [**list_t**](v1alpha2_resource_claim_parameters.md) \* | Items is the list of node resource capacity objects. | +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_list_meta_t**](v1_list_meta.md) \* | | [optional] + +[[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/kubernetes/docs/v1alpha2_resource_class.md b/kubernetes/docs/v1alpha2_resource_class.md index a480f9c..f6f0563 100644 --- a/kubernetes/docs/v1alpha2_resource_class.md +++ b/kubernetes/docs/v1alpha2_resource_class.md @@ -8,6 +8,7 @@ Name | Type | Description | Notes **kind** | **char \*** | 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 | [optional] **metadata** | [**v1_object_meta_t**](v1_object_meta.md) \* | | [optional] **parameters_ref** | [**v1alpha2_resource_class_parameters_reference_t**](v1alpha2_resource_class_parameters_reference.md) \* | | [optional] +**structured_parameters** | **int** | If and only if allocation of claims using this class is handled via structured parameters, then StructuredParameters must be set to true. | [optional] **suitable_nodes** | [**v1_node_selector_t**](v1_node_selector.md) \* | | [optional] [[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/kubernetes/docs/v1alpha2_resource_class_parameters.md b/kubernetes/docs/v1alpha2_resource_class_parameters.md new file mode 100644 index 0000000..678c7a4 --- /dev/null +++ b/kubernetes/docs/v1alpha2_resource_class_parameters.md @@ -0,0 +1,15 @@ +# v1alpha2_resource_class_parameters_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**filters** | [**list_t**](v1alpha2_resource_filter.md) \* | Filters describes additional contraints that must be met when using the class. | [optional] +**generated_from** | [**v1alpha2_resource_class_parameters_reference_t**](v1alpha2_resource_class_parameters_reference.md) \* | | [optional] +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_object_meta_t**](v1_object_meta.md) \* | | [optional] +**vendor_parameters** | [**list_t**](v1alpha2_vendor_parameters.md) \* | VendorParameters are arbitrary setup parameters for all claims using this class. They are ignored while allocating the claim. There must not be more than one entry per driver. | [optional] + +[[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/kubernetes/docs/v1alpha2_resource_class_parameters_list.md b/kubernetes/docs/v1alpha2_resource_class_parameters_list.md new file mode 100644 index 0000000..7751000 --- /dev/null +++ b/kubernetes/docs/v1alpha2_resource_class_parameters_list.md @@ -0,0 +1,13 @@ +# v1alpha2_resource_class_parameters_list_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**items** | [**list_t**](v1alpha2_resource_class_parameters.md) \* | Items is the list of node resource capacity objects. | +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_list_meta_t**](v1_list_meta.md) \* | | [optional] + +[[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/kubernetes/docs/v1alpha2_resource_filter.md b/kubernetes/docs/v1alpha2_resource_filter.md new file mode 100644 index 0000000..3177486 --- /dev/null +++ b/kubernetes/docs/v1alpha2_resource_filter.md @@ -0,0 +1,11 @@ +# v1alpha2_resource_filter_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**driver_name** | **char \*** | DriverName is the name used by the DRA driver kubelet plugin. | [optional] +**named_resources** | [**v1alpha2_named_resources_filter_t**](v1alpha2_named_resources_filter.md) \* | | [optional] + +[[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/kubernetes/docs/v1alpha2_resource_handle.md b/kubernetes/docs/v1alpha2_resource_handle.md index 4336c90..af2211a 100644 --- a/kubernetes/docs/v1alpha2_resource_handle.md +++ b/kubernetes/docs/v1alpha2_resource_handle.md @@ -5,6 +5,7 @@ Name | Type | Description | Notes ------------ | ------------- | ------------- | ------------- **data** | **char \*** | Data contains the opaque data associated with this ResourceHandle. It is set by the controller component of the resource driver whose name matches the DriverName set in the ResourceClaimStatus this ResourceHandle is embedded in. It is set at allocation time and is intended for processing by the kubelet plugin whose name matches the DriverName set in this ResourceHandle. The maximum size of this field is 16KiB. This may get increased in the future, but not reduced. | [optional] **driver_name** | **char \*** | DriverName specifies the name of the resource driver whose kubelet plugin should be invoked to process this ResourceHandle's data once it lands on a node. This may differ from the DriverName set in ResourceClaimStatus this ResourceHandle is embedded in. | [optional] +**structured_data** | [**v1alpha2_structured_resource_handle_t**](v1alpha2_structured_resource_handle.md) \* | | [optional] [[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/kubernetes/docs/v1alpha2_resource_request.md b/kubernetes/docs/v1alpha2_resource_request.md new file mode 100644 index 0000000..25a3ef0 --- /dev/null +++ b/kubernetes/docs/v1alpha2_resource_request.md @@ -0,0 +1,11 @@ +# v1alpha2_resource_request_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**named_resources** | [**v1alpha2_named_resources_request_t**](v1alpha2_named_resources_request.md) \* | | [optional] +**vendor_parameters** | [**object_t**](.md) \* | VendorParameters are arbitrary setup parameters for the requested resource. They are ignored while allocating a claim. | [optional] + +[[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/kubernetes/docs/v1alpha2_resource_slice.md b/kubernetes/docs/v1alpha2_resource_slice.md new file mode 100644 index 0000000..3eb7a0b --- /dev/null +++ b/kubernetes/docs/v1alpha2_resource_slice.md @@ -0,0 +1,15 @@ +# v1alpha2_resource_slice_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**driver_name** | **char \*** | DriverName identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name. | +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_object_meta_t**](v1_object_meta.md) \* | | [optional] +**named_resources** | [**v1alpha2_named_resources_resources_t**](v1alpha2_named_resources_resources.md) \* | | [optional] +**node_name** | **char \*** | NodeName identifies the node which provides the resources if they are local to a node. A field selector can be used to list only ResourceSlice objects with a certain node name. | [optional] + +[[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/kubernetes/docs/v1alpha2_resource_slice_list.md b/kubernetes/docs/v1alpha2_resource_slice_list.md new file mode 100644 index 0000000..070be0e --- /dev/null +++ b/kubernetes/docs/v1alpha2_resource_slice_list.md @@ -0,0 +1,13 @@ +# v1alpha2_resource_slice_list_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**api_version** | **char \*** | 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 | [optional] +**items** | [**list_t**](v1alpha2_resource_slice.md) \* | Items is the list of node resource capacity objects. | +**kind** | **char \*** | 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 | [optional] +**metadata** | [**v1_list_meta_t**](v1_list_meta.md) \* | | [optional] + +[[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/kubernetes/docs/v1alpha2_structured_resource_handle.md b/kubernetes/docs/v1alpha2_structured_resource_handle.md new file mode 100644 index 0000000..474df3e --- /dev/null +++ b/kubernetes/docs/v1alpha2_structured_resource_handle.md @@ -0,0 +1,13 @@ +# v1alpha2_structured_resource_handle_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**node_name** | **char \*** | NodeName is the name of the node providing the necessary resources if the resources are local to a node. | [optional] +**results** | [**list_t**](v1alpha2_driver_allocation_result.md) \* | Results lists all allocated driver resources. | +**vendor_claim_parameters** | [**object_t**](.md) \* | VendorClaimParameters are the per-claim configuration parameters from the resource claim parameters at the time that the claim was allocated. | [optional] +**vendor_class_parameters** | [**object_t**](.md) \* | VendorClassParameters are the per-claim configuration parameters from the resource class at the time that the claim was allocated. | [optional] + +[[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/kubernetes/docs/v1alpha2_vendor_parameters.md b/kubernetes/docs/v1alpha2_vendor_parameters.md new file mode 100644 index 0000000..9474482 --- /dev/null +++ b/kubernetes/docs/v1alpha2_vendor_parameters.md @@ -0,0 +1,11 @@ +# v1alpha2_vendor_parameters_t + +## Properties +Name | Type | Description | Notes +------------ | ------------- | ------------- | ------------- +**driver_name** | **char \*** | DriverName is the name used by the DRA driver kubelet plugin. | [optional] +**parameters** | [**object_t**](.md) \* | Parameters can be arbitrary setup parameters. They are ignored while allocating a claim. | [optional] + +[[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/kubernetes/model/v1_app_armor_profile.c b/kubernetes/model/v1_app_armor_profile.c new file mode 100644 index 0000000..8a94e79 --- /dev/null +++ b/kubernetes/model/v1_app_armor_profile.c @@ -0,0 +1,101 @@ +#include +#include +#include +#include "v1_app_armor_profile.h" + + + +v1_app_armor_profile_t *v1_app_armor_profile_create( + char *localhost_profile, + char *type + ) { + v1_app_armor_profile_t *v1_app_armor_profile_local_var = malloc(sizeof(v1_app_armor_profile_t)); + if (!v1_app_armor_profile_local_var) { + return NULL; + } + v1_app_armor_profile_local_var->localhost_profile = localhost_profile; + v1_app_armor_profile_local_var->type = type; + + return v1_app_armor_profile_local_var; +} + + +void v1_app_armor_profile_free(v1_app_armor_profile_t *v1_app_armor_profile) { + if(NULL == v1_app_armor_profile){ + return ; + } + listEntry_t *listEntry; + if (v1_app_armor_profile->localhost_profile) { + free(v1_app_armor_profile->localhost_profile); + v1_app_armor_profile->localhost_profile = NULL; + } + if (v1_app_armor_profile->type) { + free(v1_app_armor_profile->type); + v1_app_armor_profile->type = NULL; + } + free(v1_app_armor_profile); +} + +cJSON *v1_app_armor_profile_convertToJSON(v1_app_armor_profile_t *v1_app_armor_profile) { + cJSON *item = cJSON_CreateObject(); + + // v1_app_armor_profile->localhost_profile + if(v1_app_armor_profile->localhost_profile) { + if(cJSON_AddStringToObject(item, "localhostProfile", v1_app_armor_profile->localhost_profile) == NULL) { + goto fail; //String + } + } + + + // v1_app_armor_profile->type + if (!v1_app_armor_profile->type) { + goto fail; + } + if(cJSON_AddStringToObject(item, "type", v1_app_armor_profile->type) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_app_armor_profile_t *v1_app_armor_profile_parseFromJSON(cJSON *v1_app_armor_profileJSON){ + + v1_app_armor_profile_t *v1_app_armor_profile_local_var = NULL; + + // v1_app_armor_profile->localhost_profile + cJSON *localhost_profile = cJSON_GetObjectItemCaseSensitive(v1_app_armor_profileJSON, "localhostProfile"); + if (localhost_profile) { + if(!cJSON_IsString(localhost_profile) && !cJSON_IsNull(localhost_profile)) + { + goto end; //String + } + } + + // v1_app_armor_profile->type + cJSON *type = cJSON_GetObjectItemCaseSensitive(v1_app_armor_profileJSON, "type"); + if (!type) { + goto end; + } + + + if(!cJSON_IsString(type)) + { + goto end; //String + } + + + v1_app_armor_profile_local_var = v1_app_armor_profile_create ( + localhost_profile && !cJSON_IsNull(localhost_profile) ? strdup(localhost_profile->valuestring) : NULL, + strdup(type->valuestring) + ); + + return v1_app_armor_profile_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_app_armor_profile.h b/kubernetes/model/v1_app_armor_profile.h new file mode 100644 index 0000000..b35ab3a --- /dev/null +++ b/kubernetes/model/v1_app_armor_profile.h @@ -0,0 +1,39 @@ +/* + * v1_app_armor_profile.h + * + * AppArmorProfile defines a pod or container's AppArmor settings. + */ + +#ifndef _v1_app_armor_profile_H_ +#define _v1_app_armor_profile_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_app_armor_profile_t v1_app_armor_profile_t; + + + + +typedef struct v1_app_armor_profile_t { + char *localhost_profile; // string + char *type; // string + +} v1_app_armor_profile_t; + +v1_app_armor_profile_t *v1_app_armor_profile_create( + char *localhost_profile, + char *type +); + +void v1_app_armor_profile_free(v1_app_armor_profile_t *v1_app_armor_profile); + +v1_app_armor_profile_t *v1_app_armor_profile_parseFromJSON(cJSON *v1_app_armor_profileJSON); + +cJSON *v1_app_armor_profile_convertToJSON(v1_app_armor_profile_t *v1_app_armor_profile); + +#endif /* _v1_app_armor_profile_H_ */ + diff --git a/kubernetes/model/v1_audit_annotation.c b/kubernetes/model/v1_audit_annotation.c new file mode 100644 index 0000000..9bcfd4e --- /dev/null +++ b/kubernetes/model/v1_audit_annotation.c @@ -0,0 +1,105 @@ +#include +#include +#include +#include "v1_audit_annotation.h" + + + +v1_audit_annotation_t *v1_audit_annotation_create( + char *key, + char *value_expression + ) { + v1_audit_annotation_t *v1_audit_annotation_local_var = malloc(sizeof(v1_audit_annotation_t)); + if (!v1_audit_annotation_local_var) { + return NULL; + } + v1_audit_annotation_local_var->key = key; + v1_audit_annotation_local_var->value_expression = value_expression; + + return v1_audit_annotation_local_var; +} + + +void v1_audit_annotation_free(v1_audit_annotation_t *v1_audit_annotation) { + if(NULL == v1_audit_annotation){ + return ; + } + listEntry_t *listEntry; + if (v1_audit_annotation->key) { + free(v1_audit_annotation->key); + v1_audit_annotation->key = NULL; + } + if (v1_audit_annotation->value_expression) { + free(v1_audit_annotation->value_expression); + v1_audit_annotation->value_expression = NULL; + } + free(v1_audit_annotation); +} + +cJSON *v1_audit_annotation_convertToJSON(v1_audit_annotation_t *v1_audit_annotation) { + cJSON *item = cJSON_CreateObject(); + + // v1_audit_annotation->key + if (!v1_audit_annotation->key) { + goto fail; + } + if(cJSON_AddStringToObject(item, "key", v1_audit_annotation->key) == NULL) { + goto fail; //String + } + + + // v1_audit_annotation->value_expression + if (!v1_audit_annotation->value_expression) { + goto fail; + } + if(cJSON_AddStringToObject(item, "valueExpression", v1_audit_annotation->value_expression) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_audit_annotation_t *v1_audit_annotation_parseFromJSON(cJSON *v1_audit_annotationJSON){ + + v1_audit_annotation_t *v1_audit_annotation_local_var = NULL; + + // v1_audit_annotation->key + cJSON *key = cJSON_GetObjectItemCaseSensitive(v1_audit_annotationJSON, "key"); + if (!key) { + goto end; + } + + + if(!cJSON_IsString(key)) + { + goto end; //String + } + + // v1_audit_annotation->value_expression + cJSON *value_expression = cJSON_GetObjectItemCaseSensitive(v1_audit_annotationJSON, "valueExpression"); + if (!value_expression) { + goto end; + } + + + if(!cJSON_IsString(value_expression)) + { + goto end; //String + } + + + v1_audit_annotation_local_var = v1_audit_annotation_create ( + strdup(key->valuestring), + strdup(value_expression->valuestring) + ); + + return v1_audit_annotation_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_audit_annotation.h b/kubernetes/model/v1_audit_annotation.h new file mode 100644 index 0000000..43a9c1b --- /dev/null +++ b/kubernetes/model/v1_audit_annotation.h @@ -0,0 +1,39 @@ +/* + * v1_audit_annotation.h + * + * AuditAnnotation describes how to produce an audit annotation for an API request. + */ + +#ifndef _v1_audit_annotation_H_ +#define _v1_audit_annotation_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_audit_annotation_t v1_audit_annotation_t; + + + + +typedef struct v1_audit_annotation_t { + char *key; // string + char *value_expression; // string + +} v1_audit_annotation_t; + +v1_audit_annotation_t *v1_audit_annotation_create( + char *key, + char *value_expression +); + +void v1_audit_annotation_free(v1_audit_annotation_t *v1_audit_annotation); + +v1_audit_annotation_t *v1_audit_annotation_parseFromJSON(cJSON *v1_audit_annotationJSON); + +cJSON *v1_audit_annotation_convertToJSON(v1_audit_annotation_t *v1_audit_annotation); + +#endif /* _v1_audit_annotation_H_ */ + diff --git a/kubernetes/model/v1_container_status.c b/kubernetes/model/v1_container_status.c index 683ba3c..256caf2 100644 --- a/kubernetes/model/v1_container_status.c +++ b/kubernetes/model/v1_container_status.c @@ -16,7 +16,8 @@ v1_container_status_t *v1_container_status_create( v1_resource_requirements_t *resources, int restart_count, int started, - v1_container_state_t *state + v1_container_state_t *state, + list_t *volume_mounts ) { v1_container_status_t *v1_container_status_local_var = malloc(sizeof(v1_container_status_t)); if (!v1_container_status_local_var) { @@ -33,6 +34,7 @@ v1_container_status_t *v1_container_status_create( v1_container_status_local_var->restart_count = restart_count; v1_container_status_local_var->started = started; v1_container_status_local_var->state = state; + v1_container_status_local_var->volume_mounts = volume_mounts; return v1_container_status_local_var; } @@ -81,6 +83,13 @@ void v1_container_status_free(v1_container_status_t *v1_container_status) { v1_container_state_free(v1_container_status->state); v1_container_status->state = NULL; } + if (v1_container_status->volume_mounts) { + list_ForEach(listEntry, v1_container_status->volume_mounts) { + v1_volume_mount_status_free(listEntry->data); + } + list_freeList(v1_container_status->volume_mounts); + v1_container_status->volume_mounts = NULL; + } free(v1_container_status); } @@ -206,6 +215,26 @@ cJSON *v1_container_status_convertToJSON(v1_container_status_t *v1_container_sta } } + + // v1_container_status->volume_mounts + if(v1_container_status->volume_mounts) { + cJSON *volume_mounts = cJSON_AddArrayToObject(item, "volumeMounts"); + if(volume_mounts == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *volume_mountsListEntry; + if (v1_container_status->volume_mounts) { + list_ForEach(volume_mountsListEntry, v1_container_status->volume_mounts) { + cJSON *itemLocal = v1_volume_mount_status_convertToJSON(volume_mountsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(volume_mounts, itemLocal); + } + } + } + return item; fail: if (item) { @@ -230,6 +259,9 @@ v1_container_status_t *v1_container_status_parseFromJSON(cJSON *v1_container_sta // define the local variable for v1_container_status->state v1_container_state_t *state_local_nonprim = NULL; + // define the local list for v1_container_status->volume_mounts + list_t *volume_mountsList = NULL; + // v1_container_status->allocated_resources cJSON *allocated_resources = cJSON_GetObjectItemCaseSensitive(v1_container_statusJSON, "allocatedResources"); if (allocated_resources) { @@ -351,6 +383,27 @@ v1_container_status_t *v1_container_status_parseFromJSON(cJSON *v1_container_sta state_local_nonprim = v1_container_state_parseFromJSON(state); //nonprimitive } + // v1_container_status->volume_mounts + cJSON *volume_mounts = cJSON_GetObjectItemCaseSensitive(v1_container_statusJSON, "volumeMounts"); + if (volume_mounts) { + cJSON *volume_mounts_local_nonprimitive = NULL; + if(!cJSON_IsArray(volume_mounts)){ + goto end; //nonprimitive container + } + + volume_mountsList = list_createList(); + + cJSON_ArrayForEach(volume_mounts_local_nonprimitive,volume_mounts ) + { + if(!cJSON_IsObject(volume_mounts_local_nonprimitive)){ + goto end; + } + v1_volume_mount_status_t *volume_mountsItem = v1_volume_mount_status_parseFromJSON(volume_mounts_local_nonprimitive); + + list_addElement(volume_mountsList, volume_mountsItem); + } + } + v1_container_status_local_var = v1_container_status_create ( allocated_resources ? allocated_resourcesList : NULL, @@ -363,7 +416,8 @@ v1_container_status_t *v1_container_status_parseFromJSON(cJSON *v1_container_sta resources ? resources_local_nonprim : NULL, restart_count->valuedouble, started ? started->valueint : 0, - state ? state_local_nonprim : NULL + state ? state_local_nonprim : NULL, + volume_mounts ? volume_mountsList : NULL ); return v1_container_status_local_var; @@ -394,6 +448,15 @@ end: v1_container_state_free(state_local_nonprim); state_local_nonprim = NULL; } + if (volume_mountsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, volume_mountsList) { + v1_volume_mount_status_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(volume_mountsList); + volume_mountsList = NULL; + } return NULL; } diff --git a/kubernetes/model/v1_container_status.h b/kubernetes/model/v1_container_status.h index bbbe7c7..16af671 100644 --- a/kubernetes/model/v1_container_status.h +++ b/kubernetes/model/v1_container_status.h @@ -17,6 +17,7 @@ typedef struct v1_container_status_t v1_container_status_t; #include "v1_container_state.h" #include "v1_resource_requirements.h" +#include "v1_volume_mount_status.h" @@ -32,6 +33,7 @@ typedef struct v1_container_status_t { int restart_count; //numeric int started; //boolean struct v1_container_state_t *state; //model + list_t *volume_mounts; //nonprimitive container } v1_container_status_t; @@ -46,7 +48,8 @@ v1_container_status_t *v1_container_status_create( v1_resource_requirements_t *resources, int restart_count, int started, - v1_container_state_t *state + v1_container_state_t *state, + list_t *volume_mounts ); void v1_container_status_free(v1_container_status_t *v1_container_status); diff --git a/kubernetes/model/v1_custom_resource_definition_version.c b/kubernetes/model/v1_custom_resource_definition_version.c index ca0fcf6..ce28415 100644 --- a/kubernetes/model/v1_custom_resource_definition_version.c +++ b/kubernetes/model/v1_custom_resource_definition_version.c @@ -11,6 +11,7 @@ v1_custom_resource_definition_version_t *v1_custom_resource_definition_version_c char *deprecation_warning, char *name, v1_custom_resource_validation_t *schema, + list_t *selectable_fields, int served, int storage, v1_custom_resource_subresources_t *subresources @@ -24,6 +25,7 @@ v1_custom_resource_definition_version_t *v1_custom_resource_definition_version_c v1_custom_resource_definition_version_local_var->deprecation_warning = deprecation_warning; v1_custom_resource_definition_version_local_var->name = name; v1_custom_resource_definition_version_local_var->schema = schema; + v1_custom_resource_definition_version_local_var->selectable_fields = selectable_fields; v1_custom_resource_definition_version_local_var->served = served; v1_custom_resource_definition_version_local_var->storage = storage; v1_custom_resource_definition_version_local_var->subresources = subresources; @@ -56,6 +58,13 @@ void v1_custom_resource_definition_version_free(v1_custom_resource_definition_ve v1_custom_resource_validation_free(v1_custom_resource_definition_version->schema); v1_custom_resource_definition_version->schema = NULL; } + if (v1_custom_resource_definition_version->selectable_fields) { + list_ForEach(listEntry, v1_custom_resource_definition_version->selectable_fields) { + v1_selectable_field_free(listEntry->data); + } + list_freeList(v1_custom_resource_definition_version->selectable_fields); + v1_custom_resource_definition_version->selectable_fields = NULL; + } if (v1_custom_resource_definition_version->subresources) { v1_custom_resource_subresources_free(v1_custom_resource_definition_version->subresources); v1_custom_resource_definition_version->subresources = NULL; @@ -124,6 +133,26 @@ cJSON *v1_custom_resource_definition_version_convertToJSON(v1_custom_resource_de } + // v1_custom_resource_definition_version->selectable_fields + if(v1_custom_resource_definition_version->selectable_fields) { + cJSON *selectable_fields = cJSON_AddArrayToObject(item, "selectableFields"); + if(selectable_fields == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *selectable_fieldsListEntry; + if (v1_custom_resource_definition_version->selectable_fields) { + list_ForEach(selectable_fieldsListEntry, v1_custom_resource_definition_version->selectable_fields) { + cJSON *itemLocal = v1_selectable_field_convertToJSON(selectable_fieldsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(selectable_fields, itemLocal); + } + } + } + + // v1_custom_resource_definition_version->served if (!v1_custom_resource_definition_version->served) { goto fail; @@ -172,6 +201,9 @@ v1_custom_resource_definition_version_t *v1_custom_resource_definition_version_p // define the local variable for v1_custom_resource_definition_version->schema v1_custom_resource_validation_t *schema_local_nonprim = NULL; + // define the local list for v1_custom_resource_definition_version->selectable_fields + list_t *selectable_fieldsList = NULL; + // define the local variable for v1_custom_resource_definition_version->subresources v1_custom_resource_subresources_t *subresources_local_nonprim = NULL; @@ -232,6 +264,27 @@ v1_custom_resource_definition_version_t *v1_custom_resource_definition_version_p schema_local_nonprim = v1_custom_resource_validation_parseFromJSON(schema); //nonprimitive } + // v1_custom_resource_definition_version->selectable_fields + cJSON *selectable_fields = cJSON_GetObjectItemCaseSensitive(v1_custom_resource_definition_versionJSON, "selectableFields"); + if (selectable_fields) { + cJSON *selectable_fields_local_nonprimitive = NULL; + if(!cJSON_IsArray(selectable_fields)){ + goto end; //nonprimitive container + } + + selectable_fieldsList = list_createList(); + + cJSON_ArrayForEach(selectable_fields_local_nonprimitive,selectable_fields ) + { + if(!cJSON_IsObject(selectable_fields_local_nonprimitive)){ + goto end; + } + v1_selectable_field_t *selectable_fieldsItem = v1_selectable_field_parseFromJSON(selectable_fields_local_nonprimitive); + + list_addElement(selectable_fieldsList, selectable_fieldsItem); + } + } + // v1_custom_resource_definition_version->served cJSON *served = cJSON_GetObjectItemCaseSensitive(v1_custom_resource_definition_versionJSON, "served"); if (!served) { @@ -269,6 +322,7 @@ v1_custom_resource_definition_version_t *v1_custom_resource_definition_version_p deprecation_warning && !cJSON_IsNull(deprecation_warning) ? strdup(deprecation_warning->valuestring) : NULL, strdup(name->valuestring), schema ? schema_local_nonprim : NULL, + selectable_fields ? selectable_fieldsList : NULL, served->valueint, storage->valueint, subresources ? subresources_local_nonprim : NULL @@ -289,6 +343,15 @@ end: v1_custom_resource_validation_free(schema_local_nonprim); schema_local_nonprim = NULL; } + if (selectable_fieldsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, selectable_fieldsList) { + v1_selectable_field_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(selectable_fieldsList); + selectable_fieldsList = NULL; + } if (subresources_local_nonprim) { v1_custom_resource_subresources_free(subresources_local_nonprim); subresources_local_nonprim = NULL; diff --git a/kubernetes/model/v1_custom_resource_definition_version.h b/kubernetes/model/v1_custom_resource_definition_version.h index b7362a4..8b2460c 100644 --- a/kubernetes/model/v1_custom_resource_definition_version.h +++ b/kubernetes/model/v1_custom_resource_definition_version.h @@ -18,6 +18,7 @@ typedef struct v1_custom_resource_definition_version_t v1_custom_resource_defini #include "v1_custom_resource_column_definition.h" #include "v1_custom_resource_subresources.h" #include "v1_custom_resource_validation.h" +#include "v1_selectable_field.h" @@ -27,6 +28,7 @@ typedef struct v1_custom_resource_definition_version_t { char *deprecation_warning; // string char *name; // string struct v1_custom_resource_validation_t *schema; //model + list_t *selectable_fields; //nonprimitive container int served; //boolean int storage; //boolean struct v1_custom_resource_subresources_t *subresources; //model @@ -39,6 +41,7 @@ v1_custom_resource_definition_version_t *v1_custom_resource_definition_version_c char *deprecation_warning, char *name, v1_custom_resource_validation_t *schema, + list_t *selectable_fields, int served, int storage, v1_custom_resource_subresources_t *subresources diff --git a/kubernetes/model/v1_expression_warning.c b/kubernetes/model/v1_expression_warning.c new file mode 100644 index 0000000..7cc0f1e --- /dev/null +++ b/kubernetes/model/v1_expression_warning.c @@ -0,0 +1,105 @@ +#include +#include +#include +#include "v1_expression_warning.h" + + + +v1_expression_warning_t *v1_expression_warning_create( + char *field_ref, + char *warning + ) { + v1_expression_warning_t *v1_expression_warning_local_var = malloc(sizeof(v1_expression_warning_t)); + if (!v1_expression_warning_local_var) { + return NULL; + } + v1_expression_warning_local_var->field_ref = field_ref; + v1_expression_warning_local_var->warning = warning; + + return v1_expression_warning_local_var; +} + + +void v1_expression_warning_free(v1_expression_warning_t *v1_expression_warning) { + if(NULL == v1_expression_warning){ + return ; + } + listEntry_t *listEntry; + if (v1_expression_warning->field_ref) { + free(v1_expression_warning->field_ref); + v1_expression_warning->field_ref = NULL; + } + if (v1_expression_warning->warning) { + free(v1_expression_warning->warning); + v1_expression_warning->warning = NULL; + } + free(v1_expression_warning); +} + +cJSON *v1_expression_warning_convertToJSON(v1_expression_warning_t *v1_expression_warning) { + cJSON *item = cJSON_CreateObject(); + + // v1_expression_warning->field_ref + if (!v1_expression_warning->field_ref) { + goto fail; + } + if(cJSON_AddStringToObject(item, "fieldRef", v1_expression_warning->field_ref) == NULL) { + goto fail; //String + } + + + // v1_expression_warning->warning + if (!v1_expression_warning->warning) { + goto fail; + } + if(cJSON_AddStringToObject(item, "warning", v1_expression_warning->warning) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_expression_warning_t *v1_expression_warning_parseFromJSON(cJSON *v1_expression_warningJSON){ + + v1_expression_warning_t *v1_expression_warning_local_var = NULL; + + // v1_expression_warning->field_ref + cJSON *field_ref = cJSON_GetObjectItemCaseSensitive(v1_expression_warningJSON, "fieldRef"); + if (!field_ref) { + goto end; + } + + + if(!cJSON_IsString(field_ref)) + { + goto end; //String + } + + // v1_expression_warning->warning + cJSON *warning = cJSON_GetObjectItemCaseSensitive(v1_expression_warningJSON, "warning"); + if (!warning) { + goto end; + } + + + if(!cJSON_IsString(warning)) + { + goto end; //String + } + + + v1_expression_warning_local_var = v1_expression_warning_create ( + strdup(field_ref->valuestring), + strdup(warning->valuestring) + ); + + return v1_expression_warning_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_expression_warning.h b/kubernetes/model/v1_expression_warning.h new file mode 100644 index 0000000..ec8cb4d --- /dev/null +++ b/kubernetes/model/v1_expression_warning.h @@ -0,0 +1,39 @@ +/* + * v1_expression_warning.h + * + * ExpressionWarning is a warning information that targets a specific expression. + */ + +#ifndef _v1_expression_warning_H_ +#define _v1_expression_warning_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_expression_warning_t v1_expression_warning_t; + + + + +typedef struct v1_expression_warning_t { + char *field_ref; // string + char *warning; // string + +} v1_expression_warning_t; + +v1_expression_warning_t *v1_expression_warning_create( + char *field_ref, + char *warning +); + +void v1_expression_warning_free(v1_expression_warning_t *v1_expression_warning); + +v1_expression_warning_t *v1_expression_warning_parseFromJSON(cJSON *v1_expression_warningJSON); + +cJSON *v1_expression_warning_convertToJSON(v1_expression_warning_t *v1_expression_warning); + +#endif /* _v1_expression_warning_H_ */ + diff --git a/kubernetes/model/v1_host_alias.c b/kubernetes/model/v1_host_alias.c index 62406d9..8e1d17d 100644 --- a/kubernetes/model/v1_host_alias.c +++ b/kubernetes/model/v1_host_alias.c @@ -60,11 +60,12 @@ cJSON *v1_host_alias_convertToJSON(v1_host_alias_t *v1_host_alias) { // v1_host_alias->ip - if(v1_host_alias->ip) { + if (!v1_host_alias->ip) { + goto fail; + } if(cJSON_AddStringToObject(item, "ip", v1_host_alias->ip) == NULL) { goto fail; //String } - } return item; fail: @@ -102,17 +103,20 @@ v1_host_alias_t *v1_host_alias_parseFromJSON(cJSON *v1_host_aliasJSON){ // v1_host_alias->ip cJSON *ip = cJSON_GetObjectItemCaseSensitive(v1_host_aliasJSON, "ip"); - if (ip) { - if(!cJSON_IsString(ip) && !cJSON_IsNull(ip)) + if (!ip) { + goto end; + } + + + if(!cJSON_IsString(ip)) { goto end; //String } - } v1_host_alias_local_var = v1_host_alias_create ( hostnames ? hostnamesList : NULL, - ip && !cJSON_IsNull(ip) ? strdup(ip->valuestring) : NULL + strdup(ip->valuestring) ); return v1_host_alias_local_var; diff --git a/kubernetes/model/v1_job_spec.c b/kubernetes/model/v1_job_spec.c index 3cc84f3..cdbe9b3 100644 --- a/kubernetes/model/v1_job_spec.c +++ b/kubernetes/model/v1_job_spec.c @@ -11,12 +11,14 @@ v1_job_spec_t *v1_job_spec_create( int backoff_limit_per_index, char *completion_mode, int completions, + char *managed_by, int manual_selector, int max_failed_indexes, int parallelism, v1_pod_failure_policy_t *pod_failure_policy, char *pod_replacement_policy, v1_label_selector_t *selector, + v1_success_policy_t *success_policy, int suspend, v1_pod_template_spec_t *_template, int ttl_seconds_after_finished @@ -30,12 +32,14 @@ v1_job_spec_t *v1_job_spec_create( v1_job_spec_local_var->backoff_limit_per_index = backoff_limit_per_index; v1_job_spec_local_var->completion_mode = completion_mode; v1_job_spec_local_var->completions = completions; + v1_job_spec_local_var->managed_by = managed_by; v1_job_spec_local_var->manual_selector = manual_selector; v1_job_spec_local_var->max_failed_indexes = max_failed_indexes; v1_job_spec_local_var->parallelism = parallelism; v1_job_spec_local_var->pod_failure_policy = pod_failure_policy; v1_job_spec_local_var->pod_replacement_policy = pod_replacement_policy; v1_job_spec_local_var->selector = selector; + v1_job_spec_local_var->success_policy = success_policy; v1_job_spec_local_var->suspend = suspend; v1_job_spec_local_var->_template = _template; v1_job_spec_local_var->ttl_seconds_after_finished = ttl_seconds_after_finished; @@ -53,6 +57,10 @@ void v1_job_spec_free(v1_job_spec_t *v1_job_spec) { free(v1_job_spec->completion_mode); v1_job_spec->completion_mode = NULL; } + if (v1_job_spec->managed_by) { + free(v1_job_spec->managed_by); + v1_job_spec->managed_by = NULL; + } if (v1_job_spec->pod_failure_policy) { v1_pod_failure_policy_free(v1_job_spec->pod_failure_policy); v1_job_spec->pod_failure_policy = NULL; @@ -65,6 +73,10 @@ void v1_job_spec_free(v1_job_spec_t *v1_job_spec) { v1_label_selector_free(v1_job_spec->selector); v1_job_spec->selector = NULL; } + if (v1_job_spec->success_policy) { + v1_success_policy_free(v1_job_spec->success_policy); + v1_job_spec->success_policy = NULL; + } if (v1_job_spec->_template) { v1_pod_template_spec_free(v1_job_spec->_template); v1_job_spec->_template = NULL; @@ -115,6 +127,14 @@ cJSON *v1_job_spec_convertToJSON(v1_job_spec_t *v1_job_spec) { } + // v1_job_spec->managed_by + if(v1_job_spec->managed_by) { + if(cJSON_AddStringToObject(item, "managedBy", v1_job_spec->managed_by) == NULL) { + goto fail; //String + } + } + + // v1_job_spec->manual_selector if(v1_job_spec->manual_selector) { if(cJSON_AddBoolToObject(item, "manualSelector", v1_job_spec->manual_selector) == NULL) { @@ -173,6 +193,19 @@ cJSON *v1_job_spec_convertToJSON(v1_job_spec_t *v1_job_spec) { } + // v1_job_spec->success_policy + if(v1_job_spec->success_policy) { + cJSON *success_policy_local_JSON = v1_success_policy_convertToJSON(v1_job_spec->success_policy); + if(success_policy_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "successPolicy", success_policy_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + // v1_job_spec->suspend if(v1_job_spec->suspend) { if(cJSON_AddBoolToObject(item, "suspend", v1_job_spec->suspend) == NULL) { @@ -220,6 +253,9 @@ v1_job_spec_t *v1_job_spec_parseFromJSON(cJSON *v1_job_specJSON){ // define the local variable for v1_job_spec->selector v1_label_selector_t *selector_local_nonprim = NULL; + // define the local variable for v1_job_spec->success_policy + v1_success_policy_t *success_policy_local_nonprim = NULL; + // define the local variable for v1_job_spec->_template v1_pod_template_spec_t *_template_local_nonprim = NULL; @@ -268,6 +304,15 @@ v1_job_spec_t *v1_job_spec_parseFromJSON(cJSON *v1_job_specJSON){ } } + // v1_job_spec->managed_by + cJSON *managed_by = cJSON_GetObjectItemCaseSensitive(v1_job_specJSON, "managedBy"); + if (managed_by) { + if(!cJSON_IsString(managed_by) && !cJSON_IsNull(managed_by)) + { + goto end; //String + } + } + // v1_job_spec->manual_selector cJSON *manual_selector = cJSON_GetObjectItemCaseSensitive(v1_job_specJSON, "manualSelector"); if (manual_selector) { @@ -316,6 +361,12 @@ v1_job_spec_t *v1_job_spec_parseFromJSON(cJSON *v1_job_specJSON){ selector_local_nonprim = v1_label_selector_parseFromJSON(selector); //nonprimitive } + // v1_job_spec->success_policy + cJSON *success_policy = cJSON_GetObjectItemCaseSensitive(v1_job_specJSON, "successPolicy"); + if (success_policy) { + success_policy_local_nonprim = v1_success_policy_parseFromJSON(success_policy); //nonprimitive + } + // v1_job_spec->suspend cJSON *suspend = cJSON_GetObjectItemCaseSensitive(v1_job_specJSON, "suspend"); if (suspend) { @@ -350,12 +401,14 @@ v1_job_spec_t *v1_job_spec_parseFromJSON(cJSON *v1_job_specJSON){ backoff_limit_per_index ? backoff_limit_per_index->valuedouble : 0, completion_mode && !cJSON_IsNull(completion_mode) ? strdup(completion_mode->valuestring) : NULL, completions ? completions->valuedouble : 0, + managed_by && !cJSON_IsNull(managed_by) ? strdup(managed_by->valuestring) : NULL, manual_selector ? manual_selector->valueint : 0, max_failed_indexes ? max_failed_indexes->valuedouble : 0, parallelism ? parallelism->valuedouble : 0, pod_failure_policy ? pod_failure_policy_local_nonprim : NULL, pod_replacement_policy && !cJSON_IsNull(pod_replacement_policy) ? strdup(pod_replacement_policy->valuestring) : NULL, selector ? selector_local_nonprim : NULL, + success_policy ? success_policy_local_nonprim : NULL, suspend ? suspend->valueint : 0, _template_local_nonprim, ttl_seconds_after_finished ? ttl_seconds_after_finished->valuedouble : 0 @@ -371,6 +424,10 @@ end: v1_label_selector_free(selector_local_nonprim); selector_local_nonprim = NULL; } + if (success_policy_local_nonprim) { + v1_success_policy_free(success_policy_local_nonprim); + success_policy_local_nonprim = NULL; + } if (_template_local_nonprim) { v1_pod_template_spec_free(_template_local_nonprim); _template_local_nonprim = NULL; diff --git a/kubernetes/model/v1_job_spec.h b/kubernetes/model/v1_job_spec.h index a7f71cc..3c360b0 100644 --- a/kubernetes/model/v1_job_spec.h +++ b/kubernetes/model/v1_job_spec.h @@ -18,6 +18,7 @@ typedef struct v1_job_spec_t v1_job_spec_t; #include "v1_label_selector.h" #include "v1_pod_failure_policy.h" #include "v1_pod_template_spec.h" +#include "v1_success_policy.h" @@ -27,12 +28,14 @@ typedef struct v1_job_spec_t { int backoff_limit_per_index; //numeric char *completion_mode; // string int completions; //numeric + char *managed_by; // string int manual_selector; //boolean int max_failed_indexes; //numeric int parallelism; //numeric struct v1_pod_failure_policy_t *pod_failure_policy; //model char *pod_replacement_policy; // string struct v1_label_selector_t *selector; //model + struct v1_success_policy_t *success_policy; //model int suspend; //boolean struct v1_pod_template_spec_t *_template; //model int ttl_seconds_after_finished; //numeric @@ -45,12 +48,14 @@ v1_job_spec_t *v1_job_spec_create( int backoff_limit_per_index, char *completion_mode, int completions, + char *managed_by, int manual_selector, int max_failed_indexes, int parallelism, v1_pod_failure_policy_t *pod_failure_policy, char *pod_replacement_policy, v1_label_selector_t *selector, + v1_success_policy_t *success_policy, int suspend, v1_pod_template_spec_t *_template, int ttl_seconds_after_finished diff --git a/kubernetes/model/v1_match_resources.c b/kubernetes/model/v1_match_resources.c new file mode 100644 index 0000000..c7c2e8c --- /dev/null +++ b/kubernetes/model/v1_match_resources.c @@ -0,0 +1,265 @@ +#include +#include +#include +#include "v1_match_resources.h" + + + +v1_match_resources_t *v1_match_resources_create( + list_t *exclude_resource_rules, + char *match_policy, + v1_label_selector_t *namespace_selector, + v1_label_selector_t *object_selector, + list_t *resource_rules + ) { + v1_match_resources_t *v1_match_resources_local_var = malloc(sizeof(v1_match_resources_t)); + if (!v1_match_resources_local_var) { + return NULL; + } + v1_match_resources_local_var->exclude_resource_rules = exclude_resource_rules; + v1_match_resources_local_var->match_policy = match_policy; + v1_match_resources_local_var->namespace_selector = namespace_selector; + v1_match_resources_local_var->object_selector = object_selector; + v1_match_resources_local_var->resource_rules = resource_rules; + + return v1_match_resources_local_var; +} + + +void v1_match_resources_free(v1_match_resources_t *v1_match_resources) { + if(NULL == v1_match_resources){ + return ; + } + listEntry_t *listEntry; + if (v1_match_resources->exclude_resource_rules) { + list_ForEach(listEntry, v1_match_resources->exclude_resource_rules) { + v1_named_rule_with_operations_free(listEntry->data); + } + list_freeList(v1_match_resources->exclude_resource_rules); + v1_match_resources->exclude_resource_rules = NULL; + } + if (v1_match_resources->match_policy) { + free(v1_match_resources->match_policy); + v1_match_resources->match_policy = NULL; + } + if (v1_match_resources->namespace_selector) { + v1_label_selector_free(v1_match_resources->namespace_selector); + v1_match_resources->namespace_selector = NULL; + } + if (v1_match_resources->object_selector) { + v1_label_selector_free(v1_match_resources->object_selector); + v1_match_resources->object_selector = NULL; + } + if (v1_match_resources->resource_rules) { + list_ForEach(listEntry, v1_match_resources->resource_rules) { + v1_named_rule_with_operations_free(listEntry->data); + } + list_freeList(v1_match_resources->resource_rules); + v1_match_resources->resource_rules = NULL; + } + free(v1_match_resources); +} + +cJSON *v1_match_resources_convertToJSON(v1_match_resources_t *v1_match_resources) { + cJSON *item = cJSON_CreateObject(); + + // v1_match_resources->exclude_resource_rules + if(v1_match_resources->exclude_resource_rules) { + cJSON *exclude_resource_rules = cJSON_AddArrayToObject(item, "excludeResourceRules"); + if(exclude_resource_rules == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *exclude_resource_rulesListEntry; + if (v1_match_resources->exclude_resource_rules) { + list_ForEach(exclude_resource_rulesListEntry, v1_match_resources->exclude_resource_rules) { + cJSON *itemLocal = v1_named_rule_with_operations_convertToJSON(exclude_resource_rulesListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(exclude_resource_rules, itemLocal); + } + } + } + + + // v1_match_resources->match_policy + if(v1_match_resources->match_policy) { + if(cJSON_AddStringToObject(item, "matchPolicy", v1_match_resources->match_policy) == NULL) { + goto fail; //String + } + } + + + // v1_match_resources->namespace_selector + if(v1_match_resources->namespace_selector) { + cJSON *namespace_selector_local_JSON = v1_label_selector_convertToJSON(v1_match_resources->namespace_selector); + if(namespace_selector_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "namespaceSelector", namespace_selector_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_match_resources->object_selector + if(v1_match_resources->object_selector) { + cJSON *object_selector_local_JSON = v1_label_selector_convertToJSON(v1_match_resources->object_selector); + if(object_selector_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "objectSelector", object_selector_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_match_resources->resource_rules + if(v1_match_resources->resource_rules) { + cJSON *resource_rules = cJSON_AddArrayToObject(item, "resourceRules"); + if(resource_rules == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *resource_rulesListEntry; + if (v1_match_resources->resource_rules) { + list_ForEach(resource_rulesListEntry, v1_match_resources->resource_rules) { + cJSON *itemLocal = v1_named_rule_with_operations_convertToJSON(resource_rulesListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(resource_rules, itemLocal); + } + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_match_resources_t *v1_match_resources_parseFromJSON(cJSON *v1_match_resourcesJSON){ + + v1_match_resources_t *v1_match_resources_local_var = NULL; + + // define the local list for v1_match_resources->exclude_resource_rules + list_t *exclude_resource_rulesList = NULL; + + // define the local variable for v1_match_resources->namespace_selector + v1_label_selector_t *namespace_selector_local_nonprim = NULL; + + // define the local variable for v1_match_resources->object_selector + v1_label_selector_t *object_selector_local_nonprim = NULL; + + // define the local list for v1_match_resources->resource_rules + list_t *resource_rulesList = NULL; + + // v1_match_resources->exclude_resource_rules + cJSON *exclude_resource_rules = cJSON_GetObjectItemCaseSensitive(v1_match_resourcesJSON, "excludeResourceRules"); + if (exclude_resource_rules) { + cJSON *exclude_resource_rules_local_nonprimitive = NULL; + if(!cJSON_IsArray(exclude_resource_rules)){ + goto end; //nonprimitive container + } + + exclude_resource_rulesList = list_createList(); + + cJSON_ArrayForEach(exclude_resource_rules_local_nonprimitive,exclude_resource_rules ) + { + if(!cJSON_IsObject(exclude_resource_rules_local_nonprimitive)){ + goto end; + } + v1_named_rule_with_operations_t *exclude_resource_rulesItem = v1_named_rule_with_operations_parseFromJSON(exclude_resource_rules_local_nonprimitive); + + list_addElement(exclude_resource_rulesList, exclude_resource_rulesItem); + } + } + + // v1_match_resources->match_policy + cJSON *match_policy = cJSON_GetObjectItemCaseSensitive(v1_match_resourcesJSON, "matchPolicy"); + if (match_policy) { + if(!cJSON_IsString(match_policy) && !cJSON_IsNull(match_policy)) + { + goto end; //String + } + } + + // v1_match_resources->namespace_selector + cJSON *namespace_selector = cJSON_GetObjectItemCaseSensitive(v1_match_resourcesJSON, "namespaceSelector"); + if (namespace_selector) { + namespace_selector_local_nonprim = v1_label_selector_parseFromJSON(namespace_selector); //nonprimitive + } + + // v1_match_resources->object_selector + cJSON *object_selector = cJSON_GetObjectItemCaseSensitive(v1_match_resourcesJSON, "objectSelector"); + if (object_selector) { + object_selector_local_nonprim = v1_label_selector_parseFromJSON(object_selector); //nonprimitive + } + + // v1_match_resources->resource_rules + cJSON *resource_rules = cJSON_GetObjectItemCaseSensitive(v1_match_resourcesJSON, "resourceRules"); + if (resource_rules) { + cJSON *resource_rules_local_nonprimitive = NULL; + if(!cJSON_IsArray(resource_rules)){ + goto end; //nonprimitive container + } + + resource_rulesList = list_createList(); + + cJSON_ArrayForEach(resource_rules_local_nonprimitive,resource_rules ) + { + if(!cJSON_IsObject(resource_rules_local_nonprimitive)){ + goto end; + } + v1_named_rule_with_operations_t *resource_rulesItem = v1_named_rule_with_operations_parseFromJSON(resource_rules_local_nonprimitive); + + list_addElement(resource_rulesList, resource_rulesItem); + } + } + + + v1_match_resources_local_var = v1_match_resources_create ( + exclude_resource_rules ? exclude_resource_rulesList : NULL, + match_policy && !cJSON_IsNull(match_policy) ? strdup(match_policy->valuestring) : NULL, + namespace_selector ? namespace_selector_local_nonprim : NULL, + object_selector ? object_selector_local_nonprim : NULL, + resource_rules ? resource_rulesList : NULL + ); + + return v1_match_resources_local_var; +end: + if (exclude_resource_rulesList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, exclude_resource_rulesList) { + v1_named_rule_with_operations_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(exclude_resource_rulesList); + exclude_resource_rulesList = NULL; + } + if (namespace_selector_local_nonprim) { + v1_label_selector_free(namespace_selector_local_nonprim); + namespace_selector_local_nonprim = NULL; + } + if (object_selector_local_nonprim) { + v1_label_selector_free(object_selector_local_nonprim); + object_selector_local_nonprim = NULL; + } + if (resource_rulesList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, resource_rulesList) { + v1_named_rule_with_operations_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(resource_rulesList); + resource_rulesList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_match_resources.h b/kubernetes/model/v1_match_resources.h new file mode 100644 index 0000000..a6a657f --- /dev/null +++ b/kubernetes/model/v1_match_resources.h @@ -0,0 +1,47 @@ +/* + * v1_match_resources.h + * + * MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + */ + +#ifndef _v1_match_resources_H_ +#define _v1_match_resources_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_match_resources_t v1_match_resources_t; + +#include "v1_label_selector.h" +#include "v1_named_rule_with_operations.h" + + + +typedef struct v1_match_resources_t { + list_t *exclude_resource_rules; //nonprimitive container + char *match_policy; // string + struct v1_label_selector_t *namespace_selector; //model + struct v1_label_selector_t *object_selector; //model + list_t *resource_rules; //nonprimitive container + +} v1_match_resources_t; + +v1_match_resources_t *v1_match_resources_create( + list_t *exclude_resource_rules, + char *match_policy, + v1_label_selector_t *namespace_selector, + v1_label_selector_t *object_selector, + list_t *resource_rules +); + +void v1_match_resources_free(v1_match_resources_t *v1_match_resources); + +v1_match_resources_t *v1_match_resources_parseFromJSON(cJSON *v1_match_resourcesJSON); + +cJSON *v1_match_resources_convertToJSON(v1_match_resources_t *v1_match_resources); + +#endif /* _v1_match_resources_H_ */ + diff --git a/kubernetes/model/v1_named_rule_with_operations.c b/kubernetes/model/v1_named_rule_with_operations.c new file mode 100644 index 0000000..d1bd318 --- /dev/null +++ b/kubernetes/model/v1_named_rule_with_operations.c @@ -0,0 +1,363 @@ +#include +#include +#include +#include "v1_named_rule_with_operations.h" + + + +v1_named_rule_with_operations_t *v1_named_rule_with_operations_create( + list_t *api_groups, + list_t *api_versions, + list_t *operations, + list_t *resource_names, + list_t *resources, + char *scope + ) { + v1_named_rule_with_operations_t *v1_named_rule_with_operations_local_var = malloc(sizeof(v1_named_rule_with_operations_t)); + if (!v1_named_rule_with_operations_local_var) { + return NULL; + } + v1_named_rule_with_operations_local_var->api_groups = api_groups; + v1_named_rule_with_operations_local_var->api_versions = api_versions; + v1_named_rule_with_operations_local_var->operations = operations; + v1_named_rule_with_operations_local_var->resource_names = resource_names; + v1_named_rule_with_operations_local_var->resources = resources; + v1_named_rule_with_operations_local_var->scope = scope; + + return v1_named_rule_with_operations_local_var; +} + + +void v1_named_rule_with_operations_free(v1_named_rule_with_operations_t *v1_named_rule_with_operations) { + if(NULL == v1_named_rule_with_operations){ + return ; + } + listEntry_t *listEntry; + if (v1_named_rule_with_operations->api_groups) { + list_ForEach(listEntry, v1_named_rule_with_operations->api_groups) { + free(listEntry->data); + } + list_freeList(v1_named_rule_with_operations->api_groups); + v1_named_rule_with_operations->api_groups = NULL; + } + if (v1_named_rule_with_operations->api_versions) { + list_ForEach(listEntry, v1_named_rule_with_operations->api_versions) { + free(listEntry->data); + } + list_freeList(v1_named_rule_with_operations->api_versions); + v1_named_rule_with_operations->api_versions = NULL; + } + if (v1_named_rule_with_operations->operations) { + list_ForEach(listEntry, v1_named_rule_with_operations->operations) { + free(listEntry->data); + } + list_freeList(v1_named_rule_with_operations->operations); + v1_named_rule_with_operations->operations = NULL; + } + if (v1_named_rule_with_operations->resource_names) { + list_ForEach(listEntry, v1_named_rule_with_operations->resource_names) { + free(listEntry->data); + } + list_freeList(v1_named_rule_with_operations->resource_names); + v1_named_rule_with_operations->resource_names = NULL; + } + if (v1_named_rule_with_operations->resources) { + list_ForEach(listEntry, v1_named_rule_with_operations->resources) { + free(listEntry->data); + } + list_freeList(v1_named_rule_with_operations->resources); + v1_named_rule_with_operations->resources = NULL; + } + if (v1_named_rule_with_operations->scope) { + free(v1_named_rule_with_operations->scope); + v1_named_rule_with_operations->scope = NULL; + } + free(v1_named_rule_with_operations); +} + +cJSON *v1_named_rule_with_operations_convertToJSON(v1_named_rule_with_operations_t *v1_named_rule_with_operations) { + cJSON *item = cJSON_CreateObject(); + + // v1_named_rule_with_operations->api_groups + if(v1_named_rule_with_operations->api_groups) { + cJSON *api_groups = cJSON_AddArrayToObject(item, "apiGroups"); + if(api_groups == NULL) { + goto fail; //primitive container + } + + listEntry_t *api_groupsListEntry; + list_ForEach(api_groupsListEntry, v1_named_rule_with_operations->api_groups) { + if(cJSON_AddStringToObject(api_groups, "", (char*)api_groupsListEntry->data) == NULL) + { + goto fail; + } + } + } + + + // v1_named_rule_with_operations->api_versions + if(v1_named_rule_with_operations->api_versions) { + cJSON *api_versions = cJSON_AddArrayToObject(item, "apiVersions"); + if(api_versions == NULL) { + goto fail; //primitive container + } + + listEntry_t *api_versionsListEntry; + list_ForEach(api_versionsListEntry, v1_named_rule_with_operations->api_versions) { + if(cJSON_AddStringToObject(api_versions, "", (char*)api_versionsListEntry->data) == NULL) + { + goto fail; + } + } + } + + + // v1_named_rule_with_operations->operations + if(v1_named_rule_with_operations->operations) { + cJSON *operations = cJSON_AddArrayToObject(item, "operations"); + if(operations == NULL) { + goto fail; //primitive container + } + + listEntry_t *operationsListEntry; + list_ForEach(operationsListEntry, v1_named_rule_with_operations->operations) { + if(cJSON_AddStringToObject(operations, "", (char*)operationsListEntry->data) == NULL) + { + goto fail; + } + } + } + + + // v1_named_rule_with_operations->resource_names + if(v1_named_rule_with_operations->resource_names) { + cJSON *resource_names = cJSON_AddArrayToObject(item, "resourceNames"); + if(resource_names == NULL) { + goto fail; //primitive container + } + + listEntry_t *resource_namesListEntry; + list_ForEach(resource_namesListEntry, v1_named_rule_with_operations->resource_names) { + if(cJSON_AddStringToObject(resource_names, "", (char*)resource_namesListEntry->data) == NULL) + { + goto fail; + } + } + } + + + // v1_named_rule_with_operations->resources + if(v1_named_rule_with_operations->resources) { + cJSON *resources = cJSON_AddArrayToObject(item, "resources"); + if(resources == NULL) { + goto fail; //primitive container + } + + listEntry_t *resourcesListEntry; + list_ForEach(resourcesListEntry, v1_named_rule_with_operations->resources) { + if(cJSON_AddStringToObject(resources, "", (char*)resourcesListEntry->data) == NULL) + { + goto fail; + } + } + } + + + // v1_named_rule_with_operations->scope + if(v1_named_rule_with_operations->scope) { + if(cJSON_AddStringToObject(item, "scope", v1_named_rule_with_operations->scope) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_named_rule_with_operations_t *v1_named_rule_with_operations_parseFromJSON(cJSON *v1_named_rule_with_operationsJSON){ + + v1_named_rule_with_operations_t *v1_named_rule_with_operations_local_var = NULL; + + // define the local list for v1_named_rule_with_operations->api_groups + list_t *api_groupsList = NULL; + + // define the local list for v1_named_rule_with_operations->api_versions + list_t *api_versionsList = NULL; + + // define the local list for v1_named_rule_with_operations->operations + list_t *operationsList = NULL; + + // define the local list for v1_named_rule_with_operations->resource_names + list_t *resource_namesList = NULL; + + // define the local list for v1_named_rule_with_operations->resources + list_t *resourcesList = NULL; + + // v1_named_rule_with_operations->api_groups + cJSON *api_groups = cJSON_GetObjectItemCaseSensitive(v1_named_rule_with_operationsJSON, "apiGroups"); + if (api_groups) { + cJSON *api_groups_local = NULL; + if(!cJSON_IsArray(api_groups)) { + goto end;//primitive container + } + api_groupsList = list_createList(); + + cJSON_ArrayForEach(api_groups_local, api_groups) + { + if(!cJSON_IsString(api_groups_local)) + { + goto end; + } + list_addElement(api_groupsList , strdup(api_groups_local->valuestring)); + } + } + + // v1_named_rule_with_operations->api_versions + cJSON *api_versions = cJSON_GetObjectItemCaseSensitive(v1_named_rule_with_operationsJSON, "apiVersions"); + if (api_versions) { + cJSON *api_versions_local = NULL; + if(!cJSON_IsArray(api_versions)) { + goto end;//primitive container + } + api_versionsList = list_createList(); + + cJSON_ArrayForEach(api_versions_local, api_versions) + { + if(!cJSON_IsString(api_versions_local)) + { + goto end; + } + list_addElement(api_versionsList , strdup(api_versions_local->valuestring)); + } + } + + // v1_named_rule_with_operations->operations + cJSON *operations = cJSON_GetObjectItemCaseSensitive(v1_named_rule_with_operationsJSON, "operations"); + if (operations) { + cJSON *operations_local = NULL; + if(!cJSON_IsArray(operations)) { + goto end;//primitive container + } + operationsList = list_createList(); + + cJSON_ArrayForEach(operations_local, operations) + { + if(!cJSON_IsString(operations_local)) + { + goto end; + } + list_addElement(operationsList , strdup(operations_local->valuestring)); + } + } + + // v1_named_rule_with_operations->resource_names + cJSON *resource_names = cJSON_GetObjectItemCaseSensitive(v1_named_rule_with_operationsJSON, "resourceNames"); + if (resource_names) { + cJSON *resource_names_local = NULL; + if(!cJSON_IsArray(resource_names)) { + goto end;//primitive container + } + resource_namesList = list_createList(); + + cJSON_ArrayForEach(resource_names_local, resource_names) + { + if(!cJSON_IsString(resource_names_local)) + { + goto end; + } + list_addElement(resource_namesList , strdup(resource_names_local->valuestring)); + } + } + + // v1_named_rule_with_operations->resources + cJSON *resources = cJSON_GetObjectItemCaseSensitive(v1_named_rule_with_operationsJSON, "resources"); + if (resources) { + cJSON *resources_local = NULL; + if(!cJSON_IsArray(resources)) { + goto end;//primitive container + } + resourcesList = list_createList(); + + cJSON_ArrayForEach(resources_local, resources) + { + if(!cJSON_IsString(resources_local)) + { + goto end; + } + list_addElement(resourcesList , strdup(resources_local->valuestring)); + } + } + + // v1_named_rule_with_operations->scope + cJSON *scope = cJSON_GetObjectItemCaseSensitive(v1_named_rule_with_operationsJSON, "scope"); + if (scope) { + if(!cJSON_IsString(scope) && !cJSON_IsNull(scope)) + { + goto end; //String + } + } + + + v1_named_rule_with_operations_local_var = v1_named_rule_with_operations_create ( + api_groups ? api_groupsList : NULL, + api_versions ? api_versionsList : NULL, + operations ? operationsList : NULL, + resource_names ? resource_namesList : NULL, + resources ? resourcesList : NULL, + scope && !cJSON_IsNull(scope) ? strdup(scope->valuestring) : NULL + ); + + return v1_named_rule_with_operations_local_var; +end: + if (api_groupsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, api_groupsList) { + free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(api_groupsList); + api_groupsList = NULL; + } + if (api_versionsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, api_versionsList) { + free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(api_versionsList); + api_versionsList = NULL; + } + if (operationsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, operationsList) { + free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(operationsList); + operationsList = NULL; + } + if (resource_namesList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, resource_namesList) { + free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(resource_namesList); + resource_namesList = NULL; + } + if (resourcesList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, resourcesList) { + free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(resourcesList); + resourcesList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_named_rule_with_operations.h b/kubernetes/model/v1_named_rule_with_operations.h new file mode 100644 index 0000000..f37ccec --- /dev/null +++ b/kubernetes/model/v1_named_rule_with_operations.h @@ -0,0 +1,47 @@ +/* + * v1_named_rule_with_operations.h + * + * NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. + */ + +#ifndef _v1_named_rule_with_operations_H_ +#define _v1_named_rule_with_operations_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_named_rule_with_operations_t v1_named_rule_with_operations_t; + + + + +typedef struct v1_named_rule_with_operations_t { + list_t *api_groups; //primitive container + list_t *api_versions; //primitive container + list_t *operations; //primitive container + list_t *resource_names; //primitive container + list_t *resources; //primitive container + char *scope; // string + +} v1_named_rule_with_operations_t; + +v1_named_rule_with_operations_t *v1_named_rule_with_operations_create( + list_t *api_groups, + list_t *api_versions, + list_t *operations, + list_t *resource_names, + list_t *resources, + char *scope +); + +void v1_named_rule_with_operations_free(v1_named_rule_with_operations_t *v1_named_rule_with_operations); + +v1_named_rule_with_operations_t *v1_named_rule_with_operations_parseFromJSON(cJSON *v1_named_rule_with_operationsJSON); + +cJSON *v1_named_rule_with_operations_convertToJSON(v1_named_rule_with_operations_t *v1_named_rule_with_operations); + +#endif /* _v1_named_rule_with_operations_H_ */ + diff --git a/kubernetes/model/v1_node_runtime_handler.c b/kubernetes/model/v1_node_runtime_handler.c new file mode 100644 index 0000000..b41e79e --- /dev/null +++ b/kubernetes/model/v1_node_runtime_handler.c @@ -0,0 +1,106 @@ +#include +#include +#include +#include "v1_node_runtime_handler.h" + + + +v1_node_runtime_handler_t *v1_node_runtime_handler_create( + v1_node_runtime_handler_features_t *features, + char *name + ) { + v1_node_runtime_handler_t *v1_node_runtime_handler_local_var = malloc(sizeof(v1_node_runtime_handler_t)); + if (!v1_node_runtime_handler_local_var) { + return NULL; + } + v1_node_runtime_handler_local_var->features = features; + v1_node_runtime_handler_local_var->name = name; + + return v1_node_runtime_handler_local_var; +} + + +void v1_node_runtime_handler_free(v1_node_runtime_handler_t *v1_node_runtime_handler) { + if(NULL == v1_node_runtime_handler){ + return ; + } + listEntry_t *listEntry; + if (v1_node_runtime_handler->features) { + v1_node_runtime_handler_features_free(v1_node_runtime_handler->features); + v1_node_runtime_handler->features = NULL; + } + if (v1_node_runtime_handler->name) { + free(v1_node_runtime_handler->name); + v1_node_runtime_handler->name = NULL; + } + free(v1_node_runtime_handler); +} + +cJSON *v1_node_runtime_handler_convertToJSON(v1_node_runtime_handler_t *v1_node_runtime_handler) { + cJSON *item = cJSON_CreateObject(); + + // v1_node_runtime_handler->features + if(v1_node_runtime_handler->features) { + cJSON *features_local_JSON = v1_node_runtime_handler_features_convertToJSON(v1_node_runtime_handler->features); + if(features_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "features", features_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_node_runtime_handler->name + if(v1_node_runtime_handler->name) { + if(cJSON_AddStringToObject(item, "name", v1_node_runtime_handler->name) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_node_runtime_handler_t *v1_node_runtime_handler_parseFromJSON(cJSON *v1_node_runtime_handlerJSON){ + + v1_node_runtime_handler_t *v1_node_runtime_handler_local_var = NULL; + + // define the local variable for v1_node_runtime_handler->features + v1_node_runtime_handler_features_t *features_local_nonprim = NULL; + + // v1_node_runtime_handler->features + cJSON *features = cJSON_GetObjectItemCaseSensitive(v1_node_runtime_handlerJSON, "features"); + if (features) { + features_local_nonprim = v1_node_runtime_handler_features_parseFromJSON(features); //nonprimitive + } + + // v1_node_runtime_handler->name + cJSON *name = cJSON_GetObjectItemCaseSensitive(v1_node_runtime_handlerJSON, "name"); + if (name) { + if(!cJSON_IsString(name) && !cJSON_IsNull(name)) + { + goto end; //String + } + } + + + v1_node_runtime_handler_local_var = v1_node_runtime_handler_create ( + features ? features_local_nonprim : NULL, + name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL + ); + + return v1_node_runtime_handler_local_var; +end: + if (features_local_nonprim) { + v1_node_runtime_handler_features_free(features_local_nonprim); + features_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_node_runtime_handler.h b/kubernetes/model/v1_node_runtime_handler.h new file mode 100644 index 0000000..edd0d55 --- /dev/null +++ b/kubernetes/model/v1_node_runtime_handler.h @@ -0,0 +1,40 @@ +/* + * v1_node_runtime_handler.h + * + * NodeRuntimeHandler is a set of runtime handler information. + */ + +#ifndef _v1_node_runtime_handler_H_ +#define _v1_node_runtime_handler_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_node_runtime_handler_t v1_node_runtime_handler_t; + +#include "v1_node_runtime_handler_features.h" + + + +typedef struct v1_node_runtime_handler_t { + struct v1_node_runtime_handler_features_t *features; //model + char *name; // string + +} v1_node_runtime_handler_t; + +v1_node_runtime_handler_t *v1_node_runtime_handler_create( + v1_node_runtime_handler_features_t *features, + char *name +); + +void v1_node_runtime_handler_free(v1_node_runtime_handler_t *v1_node_runtime_handler); + +v1_node_runtime_handler_t *v1_node_runtime_handler_parseFromJSON(cJSON *v1_node_runtime_handlerJSON); + +cJSON *v1_node_runtime_handler_convertToJSON(v1_node_runtime_handler_t *v1_node_runtime_handler); + +#endif /* _v1_node_runtime_handler_H_ */ + diff --git a/kubernetes/model/v1_node_runtime_handler_features.c b/kubernetes/model/v1_node_runtime_handler_features.c new file mode 100644 index 0000000..5f219ba --- /dev/null +++ b/kubernetes/model/v1_node_runtime_handler_features.c @@ -0,0 +1,69 @@ +#include +#include +#include +#include "v1_node_runtime_handler_features.h" + + + +v1_node_runtime_handler_features_t *v1_node_runtime_handler_features_create( + int recursive_read_only_mounts + ) { + v1_node_runtime_handler_features_t *v1_node_runtime_handler_features_local_var = malloc(sizeof(v1_node_runtime_handler_features_t)); + if (!v1_node_runtime_handler_features_local_var) { + return NULL; + } + v1_node_runtime_handler_features_local_var->recursive_read_only_mounts = recursive_read_only_mounts; + + return v1_node_runtime_handler_features_local_var; +} + + +void v1_node_runtime_handler_features_free(v1_node_runtime_handler_features_t *v1_node_runtime_handler_features) { + if(NULL == v1_node_runtime_handler_features){ + return ; + } + listEntry_t *listEntry; + free(v1_node_runtime_handler_features); +} + +cJSON *v1_node_runtime_handler_features_convertToJSON(v1_node_runtime_handler_features_t *v1_node_runtime_handler_features) { + cJSON *item = cJSON_CreateObject(); + + // v1_node_runtime_handler_features->recursive_read_only_mounts + if(v1_node_runtime_handler_features->recursive_read_only_mounts) { + if(cJSON_AddBoolToObject(item, "recursiveReadOnlyMounts", v1_node_runtime_handler_features->recursive_read_only_mounts) == NULL) { + goto fail; //Bool + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_node_runtime_handler_features_t *v1_node_runtime_handler_features_parseFromJSON(cJSON *v1_node_runtime_handler_featuresJSON){ + + v1_node_runtime_handler_features_t *v1_node_runtime_handler_features_local_var = NULL; + + // v1_node_runtime_handler_features->recursive_read_only_mounts + cJSON *recursive_read_only_mounts = cJSON_GetObjectItemCaseSensitive(v1_node_runtime_handler_featuresJSON, "recursiveReadOnlyMounts"); + if (recursive_read_only_mounts) { + if(!cJSON_IsBool(recursive_read_only_mounts)) + { + goto end; //Bool + } + } + + + v1_node_runtime_handler_features_local_var = v1_node_runtime_handler_features_create ( + recursive_read_only_mounts ? recursive_read_only_mounts->valueint : 0 + ); + + return v1_node_runtime_handler_features_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_node_runtime_handler_features.h b/kubernetes/model/v1_node_runtime_handler_features.h new file mode 100644 index 0000000..50a5d7e --- /dev/null +++ b/kubernetes/model/v1_node_runtime_handler_features.h @@ -0,0 +1,37 @@ +/* + * v1_node_runtime_handler_features.h + * + * NodeRuntimeHandlerFeatures is a set of runtime features. + */ + +#ifndef _v1_node_runtime_handler_features_H_ +#define _v1_node_runtime_handler_features_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_node_runtime_handler_features_t v1_node_runtime_handler_features_t; + + + + +typedef struct v1_node_runtime_handler_features_t { + int recursive_read_only_mounts; //boolean + +} v1_node_runtime_handler_features_t; + +v1_node_runtime_handler_features_t *v1_node_runtime_handler_features_create( + int recursive_read_only_mounts +); + +void v1_node_runtime_handler_features_free(v1_node_runtime_handler_features_t *v1_node_runtime_handler_features); + +v1_node_runtime_handler_features_t *v1_node_runtime_handler_features_parseFromJSON(cJSON *v1_node_runtime_handler_featuresJSON); + +cJSON *v1_node_runtime_handler_features_convertToJSON(v1_node_runtime_handler_features_t *v1_node_runtime_handler_features); + +#endif /* _v1_node_runtime_handler_features_H_ */ + diff --git a/kubernetes/model/v1_node_status.c b/kubernetes/model/v1_node_status.c index e923734..d238fc6 100644 --- a/kubernetes/model/v1_node_status.c +++ b/kubernetes/model/v1_node_status.c @@ -15,6 +15,7 @@ v1_node_status_t *v1_node_status_create( list_t *images, v1_node_system_info_t *node_info, char *phase, + list_t *runtime_handlers, list_t *volumes_attached, list_t *volumes_in_use ) { @@ -31,6 +32,7 @@ v1_node_status_t *v1_node_status_create( v1_node_status_local_var->images = images; v1_node_status_local_var->node_info = node_info; v1_node_status_local_var->phase = phase; + v1_node_status_local_var->runtime_handlers = runtime_handlers; v1_node_status_local_var->volumes_attached = volumes_attached; v1_node_status_local_var->volumes_in_use = volumes_in_use; @@ -100,6 +102,13 @@ void v1_node_status_free(v1_node_status_t *v1_node_status) { free(v1_node_status->phase); v1_node_status->phase = NULL; } + if (v1_node_status->runtime_handlers) { + list_ForEach(listEntry, v1_node_status->runtime_handlers) { + v1_node_runtime_handler_free(listEntry->data); + } + list_freeList(v1_node_status->runtime_handlers); + v1_node_status->runtime_handlers = NULL; + } if (v1_node_status->volumes_attached) { list_ForEach(listEntry, v1_node_status->volumes_attached) { v1_attached_volume_free(listEntry->data); @@ -267,6 +276,26 @@ cJSON *v1_node_status_convertToJSON(v1_node_status_t *v1_node_status) { } + // v1_node_status->runtime_handlers + if(v1_node_status->runtime_handlers) { + cJSON *runtime_handlers = cJSON_AddArrayToObject(item, "runtimeHandlers"); + if(runtime_handlers == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *runtime_handlersListEntry; + if (v1_node_status->runtime_handlers) { + list_ForEach(runtime_handlersListEntry, v1_node_status->runtime_handlers) { + cJSON *itemLocal = v1_node_runtime_handler_convertToJSON(runtime_handlersListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(runtime_handlers, itemLocal); + } + } + } + + // v1_node_status->volumes_attached if(v1_node_status->volumes_attached) { cJSON *volumes_attached = cJSON_AddArrayToObject(item, "volumesAttached"); @@ -339,6 +368,9 @@ v1_node_status_t *v1_node_status_parseFromJSON(cJSON *v1_node_statusJSON){ // define the local variable for v1_node_status->node_info v1_node_system_info_t *node_info_local_nonprim = NULL; + // define the local list for v1_node_status->runtime_handlers + list_t *runtime_handlersList = NULL; + // define the local list for v1_node_status->volumes_attached list_t *volumes_attachedList = NULL; @@ -485,6 +517,27 @@ v1_node_status_t *v1_node_status_parseFromJSON(cJSON *v1_node_statusJSON){ } } + // v1_node_status->runtime_handlers + cJSON *runtime_handlers = cJSON_GetObjectItemCaseSensitive(v1_node_statusJSON, "runtimeHandlers"); + if (runtime_handlers) { + cJSON *runtime_handlers_local_nonprimitive = NULL; + if(!cJSON_IsArray(runtime_handlers)){ + goto end; //nonprimitive container + } + + runtime_handlersList = list_createList(); + + cJSON_ArrayForEach(runtime_handlers_local_nonprimitive,runtime_handlers ) + { + if(!cJSON_IsObject(runtime_handlers_local_nonprimitive)){ + goto end; + } + v1_node_runtime_handler_t *runtime_handlersItem = v1_node_runtime_handler_parseFromJSON(runtime_handlers_local_nonprimitive); + + list_addElement(runtime_handlersList, runtime_handlersItem); + } + } + // v1_node_status->volumes_attached cJSON *volumes_attached = cJSON_GetObjectItemCaseSensitive(v1_node_statusJSON, "volumesAttached"); if (volumes_attached) { @@ -536,6 +589,7 @@ v1_node_status_t *v1_node_status_parseFromJSON(cJSON *v1_node_statusJSON){ images ? imagesList : NULL, node_info ? node_info_local_nonprim : NULL, phase && !cJSON_IsNull(phase) ? strdup(phase->valuestring) : NULL, + runtime_handlers ? runtime_handlersList : NULL, volumes_attached ? volumes_attachedList : NULL, volumes_in_use ? volumes_in_useList : NULL ); @@ -609,6 +663,15 @@ end: v1_node_system_info_free(node_info_local_nonprim); node_info_local_nonprim = NULL; } + if (runtime_handlersList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, runtime_handlersList) { + v1_node_runtime_handler_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(runtime_handlersList); + runtime_handlersList = NULL; + } if (volumes_attachedList) { listEntry_t *listEntry = NULL; list_ForEach(listEntry, volumes_attachedList) { diff --git a/kubernetes/model/v1_node_status.h b/kubernetes/model/v1_node_status.h index e5c8d55..c162771 100644 --- a/kubernetes/model/v1_node_status.h +++ b/kubernetes/model/v1_node_status.h @@ -21,6 +21,7 @@ typedef struct v1_node_status_t v1_node_status_t; #include "v1_node_condition.h" #include "v1_node_config_status.h" #include "v1_node_daemon_endpoints.h" +#include "v1_node_runtime_handler.h" #include "v1_node_system_info.h" @@ -35,6 +36,7 @@ typedef struct v1_node_status_t { list_t *images; //nonprimitive container struct v1_node_system_info_t *node_info; //model char *phase; // string + list_t *runtime_handlers; //nonprimitive container list_t *volumes_attached; //nonprimitive container list_t *volumes_in_use; //primitive container @@ -50,6 +52,7 @@ v1_node_status_t *v1_node_status_create( list_t *images, v1_node_system_info_t *node_info, char *phase, + list_t *runtime_handlers, list_t *volumes_attached, list_t *volumes_in_use ); diff --git a/kubernetes/model/v1_param_kind.c b/kubernetes/model/v1_param_kind.c new file mode 100644 index 0000000..ae8adc9 --- /dev/null +++ b/kubernetes/model/v1_param_kind.c @@ -0,0 +1,97 @@ +#include +#include +#include +#include "v1_param_kind.h" + + + +v1_param_kind_t *v1_param_kind_create( + char *api_version, + char *kind + ) { + v1_param_kind_t *v1_param_kind_local_var = malloc(sizeof(v1_param_kind_t)); + if (!v1_param_kind_local_var) { + return NULL; + } + v1_param_kind_local_var->api_version = api_version; + v1_param_kind_local_var->kind = kind; + + return v1_param_kind_local_var; +} + + +void v1_param_kind_free(v1_param_kind_t *v1_param_kind) { + if(NULL == v1_param_kind){ + return ; + } + listEntry_t *listEntry; + if (v1_param_kind->api_version) { + free(v1_param_kind->api_version); + v1_param_kind->api_version = NULL; + } + if (v1_param_kind->kind) { + free(v1_param_kind->kind); + v1_param_kind->kind = NULL; + } + free(v1_param_kind); +} + +cJSON *v1_param_kind_convertToJSON(v1_param_kind_t *v1_param_kind) { + cJSON *item = cJSON_CreateObject(); + + // v1_param_kind->api_version + if(v1_param_kind->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1_param_kind->api_version) == NULL) { + goto fail; //String + } + } + + + // v1_param_kind->kind + if(v1_param_kind->kind) { + if(cJSON_AddStringToObject(item, "kind", v1_param_kind->kind) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_param_kind_t *v1_param_kind_parseFromJSON(cJSON *v1_param_kindJSON){ + + v1_param_kind_t *v1_param_kind_local_var = NULL; + + // v1_param_kind->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1_param_kindJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1_param_kind->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1_param_kindJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + + v1_param_kind_local_var = v1_param_kind_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL + ); + + return v1_param_kind_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_param_kind.h b/kubernetes/model/v1_param_kind.h new file mode 100644 index 0000000..5d96afd --- /dev/null +++ b/kubernetes/model/v1_param_kind.h @@ -0,0 +1,39 @@ +/* + * v1_param_kind.h + * + * ParamKind is a tuple of Group Kind and Version. + */ + +#ifndef _v1_param_kind_H_ +#define _v1_param_kind_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_param_kind_t v1_param_kind_t; + + + + +typedef struct v1_param_kind_t { + char *api_version; // string + char *kind; // string + +} v1_param_kind_t; + +v1_param_kind_t *v1_param_kind_create( + char *api_version, + char *kind +); + +void v1_param_kind_free(v1_param_kind_t *v1_param_kind); + +v1_param_kind_t *v1_param_kind_parseFromJSON(cJSON *v1_param_kindJSON); + +cJSON *v1_param_kind_convertToJSON(v1_param_kind_t *v1_param_kind); + +#endif /* _v1_param_kind_H_ */ + diff --git a/kubernetes/model/v1_param_ref.c b/kubernetes/model/v1_param_ref.c new file mode 100644 index 0000000..01b45f3 --- /dev/null +++ b/kubernetes/model/v1_param_ref.c @@ -0,0 +1,154 @@ +#include +#include +#include +#include "v1_param_ref.h" + + + +v1_param_ref_t *v1_param_ref_create( + char *name, + char *_namespace, + char *parameter_not_found_action, + v1_label_selector_t *selector + ) { + v1_param_ref_t *v1_param_ref_local_var = malloc(sizeof(v1_param_ref_t)); + if (!v1_param_ref_local_var) { + return NULL; + } + v1_param_ref_local_var->name = name; + v1_param_ref_local_var->_namespace = _namespace; + v1_param_ref_local_var->parameter_not_found_action = parameter_not_found_action; + v1_param_ref_local_var->selector = selector; + + return v1_param_ref_local_var; +} + + +void v1_param_ref_free(v1_param_ref_t *v1_param_ref) { + if(NULL == v1_param_ref){ + return ; + } + listEntry_t *listEntry; + if (v1_param_ref->name) { + free(v1_param_ref->name); + v1_param_ref->name = NULL; + } + if (v1_param_ref->_namespace) { + free(v1_param_ref->_namespace); + v1_param_ref->_namespace = NULL; + } + if (v1_param_ref->parameter_not_found_action) { + free(v1_param_ref->parameter_not_found_action); + v1_param_ref->parameter_not_found_action = NULL; + } + if (v1_param_ref->selector) { + v1_label_selector_free(v1_param_ref->selector); + v1_param_ref->selector = NULL; + } + free(v1_param_ref); +} + +cJSON *v1_param_ref_convertToJSON(v1_param_ref_t *v1_param_ref) { + cJSON *item = cJSON_CreateObject(); + + // v1_param_ref->name + if(v1_param_ref->name) { + if(cJSON_AddStringToObject(item, "name", v1_param_ref->name) == NULL) { + goto fail; //String + } + } + + + // v1_param_ref->_namespace + if(v1_param_ref->_namespace) { + if(cJSON_AddStringToObject(item, "namespace", v1_param_ref->_namespace) == NULL) { + goto fail; //String + } + } + + + // v1_param_ref->parameter_not_found_action + if(v1_param_ref->parameter_not_found_action) { + if(cJSON_AddStringToObject(item, "parameterNotFoundAction", v1_param_ref->parameter_not_found_action) == NULL) { + goto fail; //String + } + } + + + // v1_param_ref->selector + if(v1_param_ref->selector) { + cJSON *selector_local_JSON = v1_label_selector_convertToJSON(v1_param_ref->selector); + if(selector_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "selector", selector_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_param_ref_t *v1_param_ref_parseFromJSON(cJSON *v1_param_refJSON){ + + v1_param_ref_t *v1_param_ref_local_var = NULL; + + // define the local variable for v1_param_ref->selector + v1_label_selector_t *selector_local_nonprim = NULL; + + // v1_param_ref->name + cJSON *name = cJSON_GetObjectItemCaseSensitive(v1_param_refJSON, "name"); + if (name) { + if(!cJSON_IsString(name) && !cJSON_IsNull(name)) + { + goto end; //String + } + } + + // v1_param_ref->_namespace + cJSON *_namespace = cJSON_GetObjectItemCaseSensitive(v1_param_refJSON, "namespace"); + if (_namespace) { + if(!cJSON_IsString(_namespace) && !cJSON_IsNull(_namespace)) + { + goto end; //String + } + } + + // v1_param_ref->parameter_not_found_action + cJSON *parameter_not_found_action = cJSON_GetObjectItemCaseSensitive(v1_param_refJSON, "parameterNotFoundAction"); + if (parameter_not_found_action) { + if(!cJSON_IsString(parameter_not_found_action) && !cJSON_IsNull(parameter_not_found_action)) + { + goto end; //String + } + } + + // v1_param_ref->selector + cJSON *selector = cJSON_GetObjectItemCaseSensitive(v1_param_refJSON, "selector"); + if (selector) { + selector_local_nonprim = v1_label_selector_parseFromJSON(selector); //nonprimitive + } + + + v1_param_ref_local_var = v1_param_ref_create ( + name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL, + _namespace && !cJSON_IsNull(_namespace) ? strdup(_namespace->valuestring) : NULL, + parameter_not_found_action && !cJSON_IsNull(parameter_not_found_action) ? strdup(parameter_not_found_action->valuestring) : NULL, + selector ? selector_local_nonprim : NULL + ); + + return v1_param_ref_local_var; +end: + if (selector_local_nonprim) { + v1_label_selector_free(selector_local_nonprim); + selector_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_param_ref.h b/kubernetes/model/v1_param_ref.h new file mode 100644 index 0000000..211669c --- /dev/null +++ b/kubernetes/model/v1_param_ref.h @@ -0,0 +1,44 @@ +/* + * v1_param_ref.h + * + * ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding. + */ + +#ifndef _v1_param_ref_H_ +#define _v1_param_ref_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_param_ref_t v1_param_ref_t; + +#include "v1_label_selector.h" + + + +typedef struct v1_param_ref_t { + char *name; // string + char *_namespace; // string + char *parameter_not_found_action; // string + struct v1_label_selector_t *selector; //model + +} v1_param_ref_t; + +v1_param_ref_t *v1_param_ref_create( + char *name, + char *_namespace, + char *parameter_not_found_action, + v1_label_selector_t *selector +); + +void v1_param_ref_free(v1_param_ref_t *v1_param_ref); + +v1_param_ref_t *v1_param_ref_parseFromJSON(cJSON *v1_param_refJSON); + +cJSON *v1_param_ref_convertToJSON(v1_param_ref_t *v1_param_ref); + +#endif /* _v1_param_ref_H_ */ + diff --git a/kubernetes/model/v1_pod_security_context.c b/kubernetes/model/v1_pod_security_context.c index a1c7ebe..fb4aa9c 100644 --- a/kubernetes/model/v1_pod_security_context.c +++ b/kubernetes/model/v1_pod_security_context.c @@ -6,6 +6,7 @@ v1_pod_security_context_t *v1_pod_security_context_create( + v1_app_armor_profile_t *app_armor_profile, long fs_group, char *fs_group_change_policy, long run_as_group, @@ -21,6 +22,7 @@ v1_pod_security_context_t *v1_pod_security_context_create( if (!v1_pod_security_context_local_var) { return NULL; } + v1_pod_security_context_local_var->app_armor_profile = app_armor_profile; v1_pod_security_context_local_var->fs_group = fs_group; v1_pod_security_context_local_var->fs_group_change_policy = fs_group_change_policy; v1_pod_security_context_local_var->run_as_group = run_as_group; @@ -41,6 +43,10 @@ void v1_pod_security_context_free(v1_pod_security_context_t *v1_pod_security_con return ; } listEntry_t *listEntry; + if (v1_pod_security_context->app_armor_profile) { + v1_app_armor_profile_free(v1_pod_security_context->app_armor_profile); + v1_pod_security_context->app_armor_profile = NULL; + } if (v1_pod_security_context->fs_group_change_policy) { free(v1_pod_security_context->fs_group_change_policy); v1_pod_security_context->fs_group_change_policy = NULL; @@ -77,6 +83,19 @@ void v1_pod_security_context_free(v1_pod_security_context_t *v1_pod_security_con cJSON *v1_pod_security_context_convertToJSON(v1_pod_security_context_t *v1_pod_security_context) { cJSON *item = cJSON_CreateObject(); + // v1_pod_security_context->app_armor_profile + if(v1_pod_security_context->app_armor_profile) { + cJSON *app_armor_profile_local_JSON = v1_app_armor_profile_convertToJSON(v1_pod_security_context->app_armor_profile); + if(app_armor_profile_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "appArmorProfile", app_armor_profile_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + // v1_pod_security_context->fs_group if(v1_pod_security_context->fs_group) { if(cJSON_AddNumberToObject(item, "fsGroup", v1_pod_security_context->fs_group) == NULL) { @@ -204,6 +223,9 @@ v1_pod_security_context_t *v1_pod_security_context_parseFromJSON(cJSON *v1_pod_s v1_pod_security_context_t *v1_pod_security_context_local_var = NULL; + // define the local variable for v1_pod_security_context->app_armor_profile + v1_app_armor_profile_t *app_armor_profile_local_nonprim = NULL; + // define the local variable for v1_pod_security_context->se_linux_options v1_se_linux_options_t *se_linux_options_local_nonprim = NULL; @@ -219,6 +241,12 @@ v1_pod_security_context_t *v1_pod_security_context_parseFromJSON(cJSON *v1_pod_s // define the local variable for v1_pod_security_context->windows_options v1_windows_security_context_options_t *windows_options_local_nonprim = NULL; + // v1_pod_security_context->app_armor_profile + cJSON *app_armor_profile = cJSON_GetObjectItemCaseSensitive(v1_pod_security_contextJSON, "appArmorProfile"); + if (app_armor_profile) { + app_armor_profile_local_nonprim = v1_app_armor_profile_parseFromJSON(app_armor_profile); //nonprimitive + } + // v1_pod_security_context->fs_group cJSON *fs_group = cJSON_GetObjectItemCaseSensitive(v1_pod_security_contextJSON, "fsGroup"); if (fs_group) { @@ -330,6 +358,7 @@ v1_pod_security_context_t *v1_pod_security_context_parseFromJSON(cJSON *v1_pod_s v1_pod_security_context_local_var = v1_pod_security_context_create ( + app_armor_profile ? app_armor_profile_local_nonprim : NULL, fs_group ? fs_group->valuedouble : 0, fs_group_change_policy && !cJSON_IsNull(fs_group_change_policy) ? strdup(fs_group_change_policy->valuestring) : NULL, run_as_group ? run_as_group->valuedouble : 0, @@ -344,6 +373,10 @@ v1_pod_security_context_t *v1_pod_security_context_parseFromJSON(cJSON *v1_pod_s return v1_pod_security_context_local_var; end: + if (app_armor_profile_local_nonprim) { + v1_app_armor_profile_free(app_armor_profile_local_nonprim); + app_armor_profile_local_nonprim = NULL; + } if (se_linux_options_local_nonprim) { v1_se_linux_options_free(se_linux_options_local_nonprim); se_linux_options_local_nonprim = NULL; diff --git a/kubernetes/model/v1_pod_security_context.h b/kubernetes/model/v1_pod_security_context.h index a6295b4..d736862 100644 --- a/kubernetes/model/v1_pod_security_context.h +++ b/kubernetes/model/v1_pod_security_context.h @@ -15,6 +15,7 @@ typedef struct v1_pod_security_context_t v1_pod_security_context_t; +#include "v1_app_armor_profile.h" #include "v1_se_linux_options.h" #include "v1_seccomp_profile.h" #include "v1_sysctl.h" @@ -23,6 +24,7 @@ typedef struct v1_pod_security_context_t v1_pod_security_context_t; typedef struct v1_pod_security_context_t { + struct v1_app_armor_profile_t *app_armor_profile; //model long fs_group; //numeric char *fs_group_change_policy; // string long run_as_group; //numeric @@ -37,6 +39,7 @@ typedef struct v1_pod_security_context_t { } v1_pod_security_context_t; v1_pod_security_context_t *v1_pod_security_context_create( + v1_app_armor_profile_t *app_armor_profile, long fs_group, char *fs_group_change_policy, long run_as_group, diff --git a/kubernetes/model/v1_security_context.c b/kubernetes/model/v1_security_context.c index c29f40d..435f7a2 100644 --- a/kubernetes/model/v1_security_context.c +++ b/kubernetes/model/v1_security_context.c @@ -7,6 +7,7 @@ v1_security_context_t *v1_security_context_create( int allow_privilege_escalation, + v1_app_armor_profile_t *app_armor_profile, v1_capabilities_t *capabilities, int privileged, char *proc_mount, @@ -23,6 +24,7 @@ v1_security_context_t *v1_security_context_create( return NULL; } v1_security_context_local_var->allow_privilege_escalation = allow_privilege_escalation; + v1_security_context_local_var->app_armor_profile = app_armor_profile; v1_security_context_local_var->capabilities = capabilities; v1_security_context_local_var->privileged = privileged; v1_security_context_local_var->proc_mount = proc_mount; @@ -43,6 +45,10 @@ void v1_security_context_free(v1_security_context_t *v1_security_context) { return ; } listEntry_t *listEntry; + if (v1_security_context->app_armor_profile) { + v1_app_armor_profile_free(v1_security_context->app_armor_profile); + v1_security_context->app_armor_profile = NULL; + } if (v1_security_context->capabilities) { v1_capabilities_free(v1_security_context->capabilities); v1_security_context->capabilities = NULL; @@ -77,6 +83,19 @@ cJSON *v1_security_context_convertToJSON(v1_security_context_t *v1_security_cont } + // v1_security_context->app_armor_profile + if(v1_security_context->app_armor_profile) { + cJSON *app_armor_profile_local_JSON = v1_app_armor_profile_convertToJSON(v1_security_context->app_armor_profile); + if(app_armor_profile_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "appArmorProfile", app_armor_profile_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + // v1_security_context->capabilities if(v1_security_context->capabilities) { cJSON *capabilities_local_JSON = v1_capabilities_convertToJSON(v1_security_context->capabilities); @@ -188,6 +207,9 @@ v1_security_context_t *v1_security_context_parseFromJSON(cJSON *v1_security_cont v1_security_context_t *v1_security_context_local_var = NULL; + // define the local variable for v1_security_context->app_armor_profile + v1_app_armor_profile_t *app_armor_profile_local_nonprim = NULL; + // define the local variable for v1_security_context->capabilities v1_capabilities_t *capabilities_local_nonprim = NULL; @@ -209,6 +231,12 @@ v1_security_context_t *v1_security_context_parseFromJSON(cJSON *v1_security_cont } } + // v1_security_context->app_armor_profile + cJSON *app_armor_profile = cJSON_GetObjectItemCaseSensitive(v1_security_contextJSON, "appArmorProfile"); + if (app_armor_profile) { + app_armor_profile_local_nonprim = v1_app_armor_profile_parseFromJSON(app_armor_profile); //nonprimitive + } + // v1_security_context->capabilities cJSON *capabilities = cJSON_GetObjectItemCaseSensitive(v1_security_contextJSON, "capabilities"); if (capabilities) { @@ -290,6 +318,7 @@ v1_security_context_t *v1_security_context_parseFromJSON(cJSON *v1_security_cont v1_security_context_local_var = v1_security_context_create ( allow_privilege_escalation ? allow_privilege_escalation->valueint : 0, + app_armor_profile ? app_armor_profile_local_nonprim : NULL, capabilities ? capabilities_local_nonprim : NULL, privileged ? privileged->valueint : 0, proc_mount && !cJSON_IsNull(proc_mount) ? strdup(proc_mount->valuestring) : NULL, @@ -304,6 +333,10 @@ v1_security_context_t *v1_security_context_parseFromJSON(cJSON *v1_security_cont return v1_security_context_local_var; end: + if (app_armor_profile_local_nonprim) { + v1_app_armor_profile_free(app_armor_profile_local_nonprim); + app_armor_profile_local_nonprim = NULL; + } if (capabilities_local_nonprim) { v1_capabilities_free(capabilities_local_nonprim); capabilities_local_nonprim = NULL; diff --git a/kubernetes/model/v1_security_context.h b/kubernetes/model/v1_security_context.h index 94fb2df..76e9c5c 100644 --- a/kubernetes/model/v1_security_context.h +++ b/kubernetes/model/v1_security_context.h @@ -15,6 +15,7 @@ typedef struct v1_security_context_t v1_security_context_t; +#include "v1_app_armor_profile.h" #include "v1_capabilities.h" #include "v1_se_linux_options.h" #include "v1_seccomp_profile.h" @@ -24,6 +25,7 @@ typedef struct v1_security_context_t v1_security_context_t; typedef struct v1_security_context_t { int allow_privilege_escalation; //boolean + struct v1_app_armor_profile_t *app_armor_profile; //model struct v1_capabilities_t *capabilities; //model int privileged; //boolean char *proc_mount; // string @@ -39,6 +41,7 @@ typedef struct v1_security_context_t { v1_security_context_t *v1_security_context_create( int allow_privilege_escalation, + v1_app_armor_profile_t *app_armor_profile, v1_capabilities_t *capabilities, int privileged, char *proc_mount, diff --git a/kubernetes/model/v1_selectable_field.c b/kubernetes/model/v1_selectable_field.c new file mode 100644 index 0000000..3ed5ea5 --- /dev/null +++ b/kubernetes/model/v1_selectable_field.c @@ -0,0 +1,77 @@ +#include +#include +#include +#include "v1_selectable_field.h" + + + +v1_selectable_field_t *v1_selectable_field_create( + char *json_path + ) { + v1_selectable_field_t *v1_selectable_field_local_var = malloc(sizeof(v1_selectable_field_t)); + if (!v1_selectable_field_local_var) { + return NULL; + } + v1_selectable_field_local_var->json_path = json_path; + + return v1_selectable_field_local_var; +} + + +void v1_selectable_field_free(v1_selectable_field_t *v1_selectable_field) { + if(NULL == v1_selectable_field){ + return ; + } + listEntry_t *listEntry; + if (v1_selectable_field->json_path) { + free(v1_selectable_field->json_path); + v1_selectable_field->json_path = NULL; + } + free(v1_selectable_field); +} + +cJSON *v1_selectable_field_convertToJSON(v1_selectable_field_t *v1_selectable_field) { + cJSON *item = cJSON_CreateObject(); + + // v1_selectable_field->json_path + if (!v1_selectable_field->json_path) { + goto fail; + } + if(cJSON_AddStringToObject(item, "jsonPath", v1_selectable_field->json_path) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_selectable_field_t *v1_selectable_field_parseFromJSON(cJSON *v1_selectable_fieldJSON){ + + v1_selectable_field_t *v1_selectable_field_local_var = NULL; + + // v1_selectable_field->json_path + cJSON *json_path = cJSON_GetObjectItemCaseSensitive(v1_selectable_fieldJSON, "jsonPath"); + if (!json_path) { + goto end; + } + + + if(!cJSON_IsString(json_path)) + { + goto end; //String + } + + + v1_selectable_field_local_var = v1_selectable_field_create ( + strdup(json_path->valuestring) + ); + + return v1_selectable_field_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_selectable_field.h b/kubernetes/model/v1_selectable_field.h new file mode 100644 index 0000000..4c0615f --- /dev/null +++ b/kubernetes/model/v1_selectable_field.h @@ -0,0 +1,37 @@ +/* + * v1_selectable_field.h + * + * SelectableField specifies the JSON path of a field that may be used with field selectors. + */ + +#ifndef _v1_selectable_field_H_ +#define _v1_selectable_field_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_selectable_field_t v1_selectable_field_t; + + + + +typedef struct v1_selectable_field_t { + char *json_path; // string + +} v1_selectable_field_t; + +v1_selectable_field_t *v1_selectable_field_create( + char *json_path +); + +void v1_selectable_field_free(v1_selectable_field_t *v1_selectable_field); + +v1_selectable_field_t *v1_selectable_field_parseFromJSON(cJSON *v1_selectable_fieldJSON); + +cJSON *v1_selectable_field_convertToJSON(v1_selectable_field_t *v1_selectable_field); + +#endif /* _v1_selectable_field_H_ */ + diff --git a/kubernetes/model/v1_service_spec.c b/kubernetes/model/v1_service_spec.c index 8d096a7..7d0ebbf 100644 --- a/kubernetes/model/v1_service_spec.c +++ b/kubernetes/model/v1_service_spec.c @@ -24,6 +24,7 @@ v1_service_spec_t *v1_service_spec_create( list_t* selector, char *session_affinity, v1_session_affinity_config_t *session_affinity_config, + char *traffic_distribution, char *type ) { v1_service_spec_t *v1_service_spec_local_var = malloc(sizeof(v1_service_spec_t)); @@ -48,6 +49,7 @@ v1_service_spec_t *v1_service_spec_create( v1_service_spec_local_var->selector = selector; v1_service_spec_local_var->session_affinity = session_affinity; v1_service_spec_local_var->session_affinity_config = session_affinity_config; + v1_service_spec_local_var->traffic_distribution = traffic_distribution; v1_service_spec_local_var->type = type; return v1_service_spec_local_var; @@ -140,6 +142,10 @@ void v1_service_spec_free(v1_service_spec_t *v1_service_spec) { v1_session_affinity_config_free(v1_service_spec->session_affinity_config); v1_service_spec->session_affinity_config = NULL; } + if (v1_service_spec->traffic_distribution) { + free(v1_service_spec->traffic_distribution); + v1_service_spec->traffic_distribution = NULL; + } if (v1_service_spec->type) { free(v1_service_spec->type); v1_service_spec->type = NULL; @@ -359,6 +365,14 @@ cJSON *v1_service_spec_convertToJSON(v1_service_spec_t *v1_service_spec) { } + // v1_service_spec->traffic_distribution + if(v1_service_spec->traffic_distribution) { + if(cJSON_AddStringToObject(item, "trafficDistribution", v1_service_spec->traffic_distribution) == NULL) { + goto fail; //String + } + } + + // v1_service_spec->type if(v1_service_spec->type) { if(cJSON_AddStringToObject(item, "type", v1_service_spec->type) == NULL) { @@ -626,6 +640,15 @@ v1_service_spec_t *v1_service_spec_parseFromJSON(cJSON *v1_service_specJSON){ session_affinity_config_local_nonprim = v1_session_affinity_config_parseFromJSON(session_affinity_config); //nonprimitive } + // v1_service_spec->traffic_distribution + cJSON *traffic_distribution = cJSON_GetObjectItemCaseSensitive(v1_service_specJSON, "trafficDistribution"); + if (traffic_distribution) { + if(!cJSON_IsString(traffic_distribution) && !cJSON_IsNull(traffic_distribution)) + { + goto end; //String + } + } + // v1_service_spec->type cJSON *type = cJSON_GetObjectItemCaseSensitive(v1_service_specJSON, "type"); if (type) { @@ -655,6 +678,7 @@ v1_service_spec_t *v1_service_spec_parseFromJSON(cJSON *v1_service_specJSON){ selector ? selectorList : NULL, session_affinity && !cJSON_IsNull(session_affinity) ? strdup(session_affinity->valuestring) : NULL, session_affinity_config ? session_affinity_config_local_nonprim : NULL, + traffic_distribution && !cJSON_IsNull(traffic_distribution) ? strdup(traffic_distribution->valuestring) : NULL, type && !cJSON_IsNull(type) ? strdup(type->valuestring) : NULL ); diff --git a/kubernetes/model/v1_service_spec.h b/kubernetes/model/v1_service_spec.h index d642ba9..1e8631a 100644 --- a/kubernetes/model/v1_service_spec.h +++ b/kubernetes/model/v1_service_spec.h @@ -39,6 +39,7 @@ typedef struct v1_service_spec_t { list_t* selector; //map char *session_affinity; // string struct v1_session_affinity_config_t *session_affinity_config; //model + char *traffic_distribution; // string char *type; // string } v1_service_spec_t; @@ -62,6 +63,7 @@ v1_service_spec_t *v1_service_spec_create( list_t* selector, char *session_affinity, v1_session_affinity_config_t *session_affinity_config, + char *traffic_distribution, char *type ); diff --git a/kubernetes/model/v1_success_policy.c b/kubernetes/model/v1_success_policy.c new file mode 100644 index 0000000..5da253b --- /dev/null +++ b/kubernetes/model/v1_success_policy.c @@ -0,0 +1,116 @@ +#include +#include +#include +#include "v1_success_policy.h" + + + +v1_success_policy_t *v1_success_policy_create( + list_t *rules + ) { + v1_success_policy_t *v1_success_policy_local_var = malloc(sizeof(v1_success_policy_t)); + if (!v1_success_policy_local_var) { + return NULL; + } + v1_success_policy_local_var->rules = rules; + + return v1_success_policy_local_var; +} + + +void v1_success_policy_free(v1_success_policy_t *v1_success_policy) { + if(NULL == v1_success_policy){ + return ; + } + listEntry_t *listEntry; + if (v1_success_policy->rules) { + list_ForEach(listEntry, v1_success_policy->rules) { + v1_success_policy_rule_free(listEntry->data); + } + list_freeList(v1_success_policy->rules); + v1_success_policy->rules = NULL; + } + free(v1_success_policy); +} + +cJSON *v1_success_policy_convertToJSON(v1_success_policy_t *v1_success_policy) { + cJSON *item = cJSON_CreateObject(); + + // v1_success_policy->rules + if (!v1_success_policy->rules) { + goto fail; + } + cJSON *rules = cJSON_AddArrayToObject(item, "rules"); + if(rules == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *rulesListEntry; + if (v1_success_policy->rules) { + list_ForEach(rulesListEntry, v1_success_policy->rules) { + cJSON *itemLocal = v1_success_policy_rule_convertToJSON(rulesListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(rules, itemLocal); + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_success_policy_t *v1_success_policy_parseFromJSON(cJSON *v1_success_policyJSON){ + + v1_success_policy_t *v1_success_policy_local_var = NULL; + + // define the local list for v1_success_policy->rules + list_t *rulesList = NULL; + + // v1_success_policy->rules + cJSON *rules = cJSON_GetObjectItemCaseSensitive(v1_success_policyJSON, "rules"); + if (!rules) { + goto end; + } + + + cJSON *rules_local_nonprimitive = NULL; + if(!cJSON_IsArray(rules)){ + goto end; //nonprimitive container + } + + rulesList = list_createList(); + + cJSON_ArrayForEach(rules_local_nonprimitive,rules ) + { + if(!cJSON_IsObject(rules_local_nonprimitive)){ + goto end; + } + v1_success_policy_rule_t *rulesItem = v1_success_policy_rule_parseFromJSON(rules_local_nonprimitive); + + list_addElement(rulesList, rulesItem); + } + + + v1_success_policy_local_var = v1_success_policy_create ( + rulesList + ); + + return v1_success_policy_local_var; +end: + if (rulesList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, rulesList) { + v1_success_policy_rule_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(rulesList); + rulesList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_success_policy.h b/kubernetes/model/v1_success_policy.h new file mode 100644 index 0000000..f729f54 --- /dev/null +++ b/kubernetes/model/v1_success_policy.h @@ -0,0 +1,38 @@ +/* + * v1_success_policy.h + * + * SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes. + */ + +#ifndef _v1_success_policy_H_ +#define _v1_success_policy_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_success_policy_t v1_success_policy_t; + +#include "v1_success_policy_rule.h" + + + +typedef struct v1_success_policy_t { + list_t *rules; //nonprimitive container + +} v1_success_policy_t; + +v1_success_policy_t *v1_success_policy_create( + list_t *rules +); + +void v1_success_policy_free(v1_success_policy_t *v1_success_policy); + +v1_success_policy_t *v1_success_policy_parseFromJSON(cJSON *v1_success_policyJSON); + +cJSON *v1_success_policy_convertToJSON(v1_success_policy_t *v1_success_policy); + +#endif /* _v1_success_policy_H_ */ + diff --git a/kubernetes/model/v1_success_policy_rule.c b/kubernetes/model/v1_success_policy_rule.c new file mode 100644 index 0000000..f8f8c80 --- /dev/null +++ b/kubernetes/model/v1_success_policy_rule.c @@ -0,0 +1,93 @@ +#include +#include +#include +#include "v1_success_policy_rule.h" + + + +v1_success_policy_rule_t *v1_success_policy_rule_create( + int succeeded_count, + char *succeeded_indexes + ) { + v1_success_policy_rule_t *v1_success_policy_rule_local_var = malloc(sizeof(v1_success_policy_rule_t)); + if (!v1_success_policy_rule_local_var) { + return NULL; + } + v1_success_policy_rule_local_var->succeeded_count = succeeded_count; + v1_success_policy_rule_local_var->succeeded_indexes = succeeded_indexes; + + return v1_success_policy_rule_local_var; +} + + +void v1_success_policy_rule_free(v1_success_policy_rule_t *v1_success_policy_rule) { + if(NULL == v1_success_policy_rule){ + return ; + } + listEntry_t *listEntry; + if (v1_success_policy_rule->succeeded_indexes) { + free(v1_success_policy_rule->succeeded_indexes); + v1_success_policy_rule->succeeded_indexes = NULL; + } + free(v1_success_policy_rule); +} + +cJSON *v1_success_policy_rule_convertToJSON(v1_success_policy_rule_t *v1_success_policy_rule) { + cJSON *item = cJSON_CreateObject(); + + // v1_success_policy_rule->succeeded_count + if(v1_success_policy_rule->succeeded_count) { + if(cJSON_AddNumberToObject(item, "succeededCount", v1_success_policy_rule->succeeded_count) == NULL) { + goto fail; //Numeric + } + } + + + // v1_success_policy_rule->succeeded_indexes + if(v1_success_policy_rule->succeeded_indexes) { + if(cJSON_AddStringToObject(item, "succeededIndexes", v1_success_policy_rule->succeeded_indexes) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_success_policy_rule_t *v1_success_policy_rule_parseFromJSON(cJSON *v1_success_policy_ruleJSON){ + + v1_success_policy_rule_t *v1_success_policy_rule_local_var = NULL; + + // v1_success_policy_rule->succeeded_count + cJSON *succeeded_count = cJSON_GetObjectItemCaseSensitive(v1_success_policy_ruleJSON, "succeededCount"); + if (succeeded_count) { + if(!cJSON_IsNumber(succeeded_count)) + { + goto end; //Numeric + } + } + + // v1_success_policy_rule->succeeded_indexes + cJSON *succeeded_indexes = cJSON_GetObjectItemCaseSensitive(v1_success_policy_ruleJSON, "succeededIndexes"); + if (succeeded_indexes) { + if(!cJSON_IsString(succeeded_indexes) && !cJSON_IsNull(succeeded_indexes)) + { + goto end; //String + } + } + + + v1_success_policy_rule_local_var = v1_success_policy_rule_create ( + succeeded_count ? succeeded_count->valuedouble : 0, + succeeded_indexes && !cJSON_IsNull(succeeded_indexes) ? strdup(succeeded_indexes->valuestring) : NULL + ); + + return v1_success_policy_rule_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_success_policy_rule.h b/kubernetes/model/v1_success_policy_rule.h new file mode 100644 index 0000000..4595262 --- /dev/null +++ b/kubernetes/model/v1_success_policy_rule.h @@ -0,0 +1,39 @@ +/* + * v1_success_policy_rule.h + * + * SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the \"succeededIndexes\" or \"succeededCount\" specified. + */ + +#ifndef _v1_success_policy_rule_H_ +#define _v1_success_policy_rule_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_success_policy_rule_t v1_success_policy_rule_t; + + + + +typedef struct v1_success_policy_rule_t { + int succeeded_count; //numeric + char *succeeded_indexes; // string + +} v1_success_policy_rule_t; + +v1_success_policy_rule_t *v1_success_policy_rule_create( + int succeeded_count, + char *succeeded_indexes +); + +void v1_success_policy_rule_free(v1_success_policy_rule_t *v1_success_policy_rule); + +v1_success_policy_rule_t *v1_success_policy_rule_parseFromJSON(cJSON *v1_success_policy_ruleJSON); + +cJSON *v1_success_policy_rule_convertToJSON(v1_success_policy_rule_t *v1_success_policy_rule); + +#endif /* _v1_success_policy_rule_H_ */ + diff --git a/kubernetes/model/v1_type_checking.c b/kubernetes/model/v1_type_checking.c new file mode 100644 index 0000000..204665f --- /dev/null +++ b/kubernetes/model/v1_type_checking.c @@ -0,0 +1,112 @@ +#include +#include +#include +#include "v1_type_checking.h" + + + +v1_type_checking_t *v1_type_checking_create( + list_t *expression_warnings + ) { + v1_type_checking_t *v1_type_checking_local_var = malloc(sizeof(v1_type_checking_t)); + if (!v1_type_checking_local_var) { + return NULL; + } + v1_type_checking_local_var->expression_warnings = expression_warnings; + + return v1_type_checking_local_var; +} + + +void v1_type_checking_free(v1_type_checking_t *v1_type_checking) { + if(NULL == v1_type_checking){ + return ; + } + listEntry_t *listEntry; + if (v1_type_checking->expression_warnings) { + list_ForEach(listEntry, v1_type_checking->expression_warnings) { + v1_expression_warning_free(listEntry->data); + } + list_freeList(v1_type_checking->expression_warnings); + v1_type_checking->expression_warnings = NULL; + } + free(v1_type_checking); +} + +cJSON *v1_type_checking_convertToJSON(v1_type_checking_t *v1_type_checking) { + cJSON *item = cJSON_CreateObject(); + + // v1_type_checking->expression_warnings + if(v1_type_checking->expression_warnings) { + cJSON *expression_warnings = cJSON_AddArrayToObject(item, "expressionWarnings"); + if(expression_warnings == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *expression_warningsListEntry; + if (v1_type_checking->expression_warnings) { + list_ForEach(expression_warningsListEntry, v1_type_checking->expression_warnings) { + cJSON *itemLocal = v1_expression_warning_convertToJSON(expression_warningsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(expression_warnings, itemLocal); + } + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_type_checking_t *v1_type_checking_parseFromJSON(cJSON *v1_type_checkingJSON){ + + v1_type_checking_t *v1_type_checking_local_var = NULL; + + // define the local list for v1_type_checking->expression_warnings + list_t *expression_warningsList = NULL; + + // v1_type_checking->expression_warnings + cJSON *expression_warnings = cJSON_GetObjectItemCaseSensitive(v1_type_checkingJSON, "expressionWarnings"); + if (expression_warnings) { + cJSON *expression_warnings_local_nonprimitive = NULL; + if(!cJSON_IsArray(expression_warnings)){ + goto end; //nonprimitive container + } + + expression_warningsList = list_createList(); + + cJSON_ArrayForEach(expression_warnings_local_nonprimitive,expression_warnings ) + { + if(!cJSON_IsObject(expression_warnings_local_nonprimitive)){ + goto end; + } + v1_expression_warning_t *expression_warningsItem = v1_expression_warning_parseFromJSON(expression_warnings_local_nonprimitive); + + list_addElement(expression_warningsList, expression_warningsItem); + } + } + + + v1_type_checking_local_var = v1_type_checking_create ( + expression_warnings ? expression_warningsList : NULL + ); + + return v1_type_checking_local_var; +end: + if (expression_warningsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, expression_warningsList) { + v1_expression_warning_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(expression_warningsList); + expression_warningsList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_type_checking.h b/kubernetes/model/v1_type_checking.h new file mode 100644 index 0000000..13a5974 --- /dev/null +++ b/kubernetes/model/v1_type_checking.h @@ -0,0 +1,38 @@ +/* + * v1_type_checking.h + * + * TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy + */ + +#ifndef _v1_type_checking_H_ +#define _v1_type_checking_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_type_checking_t v1_type_checking_t; + +#include "v1_expression_warning.h" + + + +typedef struct v1_type_checking_t { + list_t *expression_warnings; //nonprimitive container + +} v1_type_checking_t; + +v1_type_checking_t *v1_type_checking_create( + list_t *expression_warnings +); + +void v1_type_checking_free(v1_type_checking_t *v1_type_checking); + +v1_type_checking_t *v1_type_checking_parseFromJSON(cJSON *v1_type_checkingJSON); + +cJSON *v1_type_checking_convertToJSON(v1_type_checking_t *v1_type_checking); + +#endif /* _v1_type_checking_H_ */ + diff --git a/kubernetes/model/v1_validating_admission_policy.c b/kubernetes/model/v1_validating_admission_policy.c new file mode 100644 index 0000000..d5d051e --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy.c @@ -0,0 +1,196 @@ +#include +#include +#include +#include "v1_validating_admission_policy.h" + + + +v1_validating_admission_policy_t *v1_validating_admission_policy_create( + char *api_version, + char *kind, + v1_object_meta_t *metadata, + v1_validating_admission_policy_spec_t *spec, + v1_validating_admission_policy_status_t *status + ) { + v1_validating_admission_policy_t *v1_validating_admission_policy_local_var = malloc(sizeof(v1_validating_admission_policy_t)); + if (!v1_validating_admission_policy_local_var) { + return NULL; + } + v1_validating_admission_policy_local_var->api_version = api_version; + v1_validating_admission_policy_local_var->kind = kind; + v1_validating_admission_policy_local_var->metadata = metadata; + v1_validating_admission_policy_local_var->spec = spec; + v1_validating_admission_policy_local_var->status = status; + + return v1_validating_admission_policy_local_var; +} + + +void v1_validating_admission_policy_free(v1_validating_admission_policy_t *v1_validating_admission_policy) { + if(NULL == v1_validating_admission_policy){ + return ; + } + listEntry_t *listEntry; + if (v1_validating_admission_policy->api_version) { + free(v1_validating_admission_policy->api_version); + v1_validating_admission_policy->api_version = NULL; + } + if (v1_validating_admission_policy->kind) { + free(v1_validating_admission_policy->kind); + v1_validating_admission_policy->kind = NULL; + } + if (v1_validating_admission_policy->metadata) { + v1_object_meta_free(v1_validating_admission_policy->metadata); + v1_validating_admission_policy->metadata = NULL; + } + if (v1_validating_admission_policy->spec) { + v1_validating_admission_policy_spec_free(v1_validating_admission_policy->spec); + v1_validating_admission_policy->spec = NULL; + } + if (v1_validating_admission_policy->status) { + v1_validating_admission_policy_status_free(v1_validating_admission_policy->status); + v1_validating_admission_policy->status = NULL; + } + free(v1_validating_admission_policy); +} + +cJSON *v1_validating_admission_policy_convertToJSON(v1_validating_admission_policy_t *v1_validating_admission_policy) { + cJSON *item = cJSON_CreateObject(); + + // v1_validating_admission_policy->api_version + if(v1_validating_admission_policy->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1_validating_admission_policy->api_version) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy->kind + if(v1_validating_admission_policy->kind) { + if(cJSON_AddStringToObject(item, "kind", v1_validating_admission_policy->kind) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy->metadata + if(v1_validating_admission_policy->metadata) { + cJSON *metadata_local_JSON = v1_object_meta_convertToJSON(v1_validating_admission_policy->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_validating_admission_policy->spec + if(v1_validating_admission_policy->spec) { + cJSON *spec_local_JSON = v1_validating_admission_policy_spec_convertToJSON(v1_validating_admission_policy->spec); + if(spec_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "spec", spec_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_validating_admission_policy->status + if(v1_validating_admission_policy->status) { + cJSON *status_local_JSON = v1_validating_admission_policy_status_convertToJSON(v1_validating_admission_policy->status); + if(status_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "status", status_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_validating_admission_policy_t *v1_validating_admission_policy_parseFromJSON(cJSON *v1_validating_admission_policyJSON){ + + v1_validating_admission_policy_t *v1_validating_admission_policy_local_var = NULL; + + // define the local variable for v1_validating_admission_policy->metadata + v1_object_meta_t *metadata_local_nonprim = NULL; + + // define the local variable for v1_validating_admission_policy->spec + v1_validating_admission_policy_spec_t *spec_local_nonprim = NULL; + + // define the local variable for v1_validating_admission_policy->status + v1_validating_admission_policy_status_t *status_local_nonprim = NULL; + + // v1_validating_admission_policy->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policyJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1_validating_admission_policy->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policyJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1_validating_admission_policy->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policyJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_object_meta_parseFromJSON(metadata); //nonprimitive + } + + // v1_validating_admission_policy->spec + cJSON *spec = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policyJSON, "spec"); + if (spec) { + spec_local_nonprim = v1_validating_admission_policy_spec_parseFromJSON(spec); //nonprimitive + } + + // v1_validating_admission_policy->status + cJSON *status = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policyJSON, "status"); + if (status) { + status_local_nonprim = v1_validating_admission_policy_status_parseFromJSON(status); //nonprimitive + } + + + v1_validating_admission_policy_local_var = v1_validating_admission_policy_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL, + spec ? spec_local_nonprim : NULL, + status ? status_local_nonprim : NULL + ); + + return v1_validating_admission_policy_local_var; +end: + if (metadata_local_nonprim) { + v1_object_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + if (spec_local_nonprim) { + v1_validating_admission_policy_spec_free(spec_local_nonprim); + spec_local_nonprim = NULL; + } + if (status_local_nonprim) { + v1_validating_admission_policy_status_free(status_local_nonprim); + status_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_validating_admission_policy.h b/kubernetes/model/v1_validating_admission_policy.h new file mode 100644 index 0000000..e9109b6 --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy.h @@ -0,0 +1,48 @@ +/* + * v1_validating_admission_policy.h + * + * ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it. + */ + +#ifndef _v1_validating_admission_policy_H_ +#define _v1_validating_admission_policy_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_validating_admission_policy_t v1_validating_admission_policy_t; + +#include "v1_object_meta.h" +#include "v1_validating_admission_policy_spec.h" +#include "v1_validating_admission_policy_status.h" + + + +typedef struct v1_validating_admission_policy_t { + char *api_version; // string + char *kind; // string + struct v1_object_meta_t *metadata; //model + struct v1_validating_admission_policy_spec_t *spec; //model + struct v1_validating_admission_policy_status_t *status; //model + +} v1_validating_admission_policy_t; + +v1_validating_admission_policy_t *v1_validating_admission_policy_create( + char *api_version, + char *kind, + v1_object_meta_t *metadata, + v1_validating_admission_policy_spec_t *spec, + v1_validating_admission_policy_status_t *status +); + +void v1_validating_admission_policy_free(v1_validating_admission_policy_t *v1_validating_admission_policy); + +v1_validating_admission_policy_t *v1_validating_admission_policy_parseFromJSON(cJSON *v1_validating_admission_policyJSON); + +cJSON *v1_validating_admission_policy_convertToJSON(v1_validating_admission_policy_t *v1_validating_admission_policy); + +#endif /* _v1_validating_admission_policy_H_ */ + diff --git a/kubernetes/model/v1_validating_admission_policy_binding.c b/kubernetes/model/v1_validating_admission_policy_binding.c new file mode 100644 index 0000000..e73abff --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_binding.c @@ -0,0 +1,163 @@ +#include +#include +#include +#include "v1_validating_admission_policy_binding.h" + + + +v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding_create( + char *api_version, + char *kind, + v1_object_meta_t *metadata, + v1_validating_admission_policy_binding_spec_t *spec + ) { + v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding_local_var = malloc(sizeof(v1_validating_admission_policy_binding_t)); + if (!v1_validating_admission_policy_binding_local_var) { + return NULL; + } + v1_validating_admission_policy_binding_local_var->api_version = api_version; + v1_validating_admission_policy_binding_local_var->kind = kind; + v1_validating_admission_policy_binding_local_var->metadata = metadata; + v1_validating_admission_policy_binding_local_var->spec = spec; + + return v1_validating_admission_policy_binding_local_var; +} + + +void v1_validating_admission_policy_binding_free(v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding) { + if(NULL == v1_validating_admission_policy_binding){ + return ; + } + listEntry_t *listEntry; + if (v1_validating_admission_policy_binding->api_version) { + free(v1_validating_admission_policy_binding->api_version); + v1_validating_admission_policy_binding->api_version = NULL; + } + if (v1_validating_admission_policy_binding->kind) { + free(v1_validating_admission_policy_binding->kind); + v1_validating_admission_policy_binding->kind = NULL; + } + if (v1_validating_admission_policy_binding->metadata) { + v1_object_meta_free(v1_validating_admission_policy_binding->metadata); + v1_validating_admission_policy_binding->metadata = NULL; + } + if (v1_validating_admission_policy_binding->spec) { + v1_validating_admission_policy_binding_spec_free(v1_validating_admission_policy_binding->spec); + v1_validating_admission_policy_binding->spec = NULL; + } + free(v1_validating_admission_policy_binding); +} + +cJSON *v1_validating_admission_policy_binding_convertToJSON(v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding) { + cJSON *item = cJSON_CreateObject(); + + // v1_validating_admission_policy_binding->api_version + if(v1_validating_admission_policy_binding->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1_validating_admission_policy_binding->api_version) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy_binding->kind + if(v1_validating_admission_policy_binding->kind) { + if(cJSON_AddStringToObject(item, "kind", v1_validating_admission_policy_binding->kind) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy_binding->metadata + if(v1_validating_admission_policy_binding->metadata) { + cJSON *metadata_local_JSON = v1_object_meta_convertToJSON(v1_validating_admission_policy_binding->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_validating_admission_policy_binding->spec + if(v1_validating_admission_policy_binding->spec) { + cJSON *spec_local_JSON = v1_validating_admission_policy_binding_spec_convertToJSON(v1_validating_admission_policy_binding->spec); + if(spec_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "spec", spec_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding_parseFromJSON(cJSON *v1_validating_admission_policy_bindingJSON){ + + v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding_local_var = NULL; + + // define the local variable for v1_validating_admission_policy_binding->metadata + v1_object_meta_t *metadata_local_nonprim = NULL; + + // define the local variable for v1_validating_admission_policy_binding->spec + v1_validating_admission_policy_binding_spec_t *spec_local_nonprim = NULL; + + // v1_validating_admission_policy_binding->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_bindingJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1_validating_admission_policy_binding->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_bindingJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1_validating_admission_policy_binding->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_bindingJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_object_meta_parseFromJSON(metadata); //nonprimitive + } + + // v1_validating_admission_policy_binding->spec + cJSON *spec = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_bindingJSON, "spec"); + if (spec) { + spec_local_nonprim = v1_validating_admission_policy_binding_spec_parseFromJSON(spec); //nonprimitive + } + + + v1_validating_admission_policy_binding_local_var = v1_validating_admission_policy_binding_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL, + spec ? spec_local_nonprim : NULL + ); + + return v1_validating_admission_policy_binding_local_var; +end: + if (metadata_local_nonprim) { + v1_object_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + if (spec_local_nonprim) { + v1_validating_admission_policy_binding_spec_free(spec_local_nonprim); + spec_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_validating_admission_policy_binding.h b/kubernetes/model/v1_validating_admission_policy_binding.h new file mode 100644 index 0000000..33e4f73 --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_binding.h @@ -0,0 +1,45 @@ +/* + * v1_validating_admission_policy_binding.h + * + * ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters. For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. The CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. + */ + +#ifndef _v1_validating_admission_policy_binding_H_ +#define _v1_validating_admission_policy_binding_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_validating_admission_policy_binding_t v1_validating_admission_policy_binding_t; + +#include "v1_object_meta.h" +#include "v1_validating_admission_policy_binding_spec.h" + + + +typedef struct v1_validating_admission_policy_binding_t { + char *api_version; // string + char *kind; // string + struct v1_object_meta_t *metadata; //model + struct v1_validating_admission_policy_binding_spec_t *spec; //model + +} v1_validating_admission_policy_binding_t; + +v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding_create( + char *api_version, + char *kind, + v1_object_meta_t *metadata, + v1_validating_admission_policy_binding_spec_t *spec +); + +void v1_validating_admission_policy_binding_free(v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding); + +v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding_parseFromJSON(cJSON *v1_validating_admission_policy_bindingJSON); + +cJSON *v1_validating_admission_policy_binding_convertToJSON(v1_validating_admission_policy_binding_t *v1_validating_admission_policy_binding); + +#endif /* _v1_validating_admission_policy_binding_H_ */ + diff --git a/kubernetes/model/v1_validating_admission_policy_binding_list.c b/kubernetes/model/v1_validating_admission_policy_binding_list.c new file mode 100644 index 0000000..aad285a --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_binding_list.c @@ -0,0 +1,193 @@ +#include +#include +#include +#include "v1_validating_admission_policy_binding_list.h" + + + +v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata + ) { + v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list_local_var = malloc(sizeof(v1_validating_admission_policy_binding_list_t)); + if (!v1_validating_admission_policy_binding_list_local_var) { + return NULL; + } + v1_validating_admission_policy_binding_list_local_var->api_version = api_version; + v1_validating_admission_policy_binding_list_local_var->items = items; + v1_validating_admission_policy_binding_list_local_var->kind = kind; + v1_validating_admission_policy_binding_list_local_var->metadata = metadata; + + return v1_validating_admission_policy_binding_list_local_var; +} + + +void v1_validating_admission_policy_binding_list_free(v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list) { + if(NULL == v1_validating_admission_policy_binding_list){ + return ; + } + listEntry_t *listEntry; + if (v1_validating_admission_policy_binding_list->api_version) { + free(v1_validating_admission_policy_binding_list->api_version); + v1_validating_admission_policy_binding_list->api_version = NULL; + } + if (v1_validating_admission_policy_binding_list->items) { + list_ForEach(listEntry, v1_validating_admission_policy_binding_list->items) { + v1_validating_admission_policy_binding_free(listEntry->data); + } + list_freeList(v1_validating_admission_policy_binding_list->items); + v1_validating_admission_policy_binding_list->items = NULL; + } + if (v1_validating_admission_policy_binding_list->kind) { + free(v1_validating_admission_policy_binding_list->kind); + v1_validating_admission_policy_binding_list->kind = NULL; + } + if (v1_validating_admission_policy_binding_list->metadata) { + v1_list_meta_free(v1_validating_admission_policy_binding_list->metadata); + v1_validating_admission_policy_binding_list->metadata = NULL; + } + free(v1_validating_admission_policy_binding_list); +} + +cJSON *v1_validating_admission_policy_binding_list_convertToJSON(v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list) { + cJSON *item = cJSON_CreateObject(); + + // v1_validating_admission_policy_binding_list->api_version + if(v1_validating_admission_policy_binding_list->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1_validating_admission_policy_binding_list->api_version) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy_binding_list->items + if(v1_validating_admission_policy_binding_list->items) { + cJSON *items = cJSON_AddArrayToObject(item, "items"); + if(items == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *itemsListEntry; + if (v1_validating_admission_policy_binding_list->items) { + list_ForEach(itemsListEntry, v1_validating_admission_policy_binding_list->items) { + cJSON *itemLocal = v1_validating_admission_policy_binding_convertToJSON(itemsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(items, itemLocal); + } + } + } + + + // v1_validating_admission_policy_binding_list->kind + if(v1_validating_admission_policy_binding_list->kind) { + if(cJSON_AddStringToObject(item, "kind", v1_validating_admission_policy_binding_list->kind) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy_binding_list->metadata + if(v1_validating_admission_policy_binding_list->metadata) { + cJSON *metadata_local_JSON = v1_list_meta_convertToJSON(v1_validating_admission_policy_binding_list->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list_parseFromJSON(cJSON *v1_validating_admission_policy_binding_listJSON){ + + v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list_local_var = NULL; + + // define the local list for v1_validating_admission_policy_binding_list->items + list_t *itemsList = NULL; + + // define the local variable for v1_validating_admission_policy_binding_list->metadata + v1_list_meta_t *metadata_local_nonprim = NULL; + + // v1_validating_admission_policy_binding_list->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_binding_listJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1_validating_admission_policy_binding_list->items + cJSON *items = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_binding_listJSON, "items"); + if (items) { + cJSON *items_local_nonprimitive = NULL; + if(!cJSON_IsArray(items)){ + goto end; //nonprimitive container + } + + itemsList = list_createList(); + + cJSON_ArrayForEach(items_local_nonprimitive,items ) + { + if(!cJSON_IsObject(items_local_nonprimitive)){ + goto end; + } + v1_validating_admission_policy_binding_t *itemsItem = v1_validating_admission_policy_binding_parseFromJSON(items_local_nonprimitive); + + list_addElement(itemsList, itemsItem); + } + } + + // v1_validating_admission_policy_binding_list->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_binding_listJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1_validating_admission_policy_binding_list->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_binding_listJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_list_meta_parseFromJSON(metadata); //nonprimitive + } + + + v1_validating_admission_policy_binding_list_local_var = v1_validating_admission_policy_binding_list_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + items ? itemsList : NULL, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL + ); + + return v1_validating_admission_policy_binding_list_local_var; +end: + if (itemsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, itemsList) { + v1_validating_admission_policy_binding_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(itemsList); + itemsList = NULL; + } + if (metadata_local_nonprim) { + v1_list_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_validating_admission_policy_binding_list.h b/kubernetes/model/v1_validating_admission_policy_binding_list.h new file mode 100644 index 0000000..88bc9e5 --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_binding_list.h @@ -0,0 +1,45 @@ +/* + * v1_validating_admission_policy_binding_list.h + * + * ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding. + */ + +#ifndef _v1_validating_admission_policy_binding_list_H_ +#define _v1_validating_admission_policy_binding_list_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_validating_admission_policy_binding_list_t v1_validating_admission_policy_binding_list_t; + +#include "v1_list_meta.h" +#include "v1_validating_admission_policy_binding.h" + + + +typedef struct v1_validating_admission_policy_binding_list_t { + char *api_version; // string + list_t *items; //nonprimitive container + char *kind; // string + struct v1_list_meta_t *metadata; //model + +} v1_validating_admission_policy_binding_list_t; + +v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata +); + +void v1_validating_admission_policy_binding_list_free(v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list); + +v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list_parseFromJSON(cJSON *v1_validating_admission_policy_binding_listJSON); + +cJSON *v1_validating_admission_policy_binding_list_convertToJSON(v1_validating_admission_policy_binding_list_t *v1_validating_admission_policy_binding_list); + +#endif /* _v1_validating_admission_policy_binding_list_H_ */ + diff --git a/kubernetes/model/v1_validating_admission_policy_binding_spec.c b/kubernetes/model/v1_validating_admission_policy_binding_spec.c new file mode 100644 index 0000000..8026a8b --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_binding_spec.c @@ -0,0 +1,197 @@ +#include +#include +#include +#include "v1_validating_admission_policy_binding_spec.h" + + + +v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec_create( + v1_match_resources_t *match_resources, + v1_param_ref_t *param_ref, + char *policy_name, + list_t *validation_actions + ) { + v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec_local_var = malloc(sizeof(v1_validating_admission_policy_binding_spec_t)); + if (!v1_validating_admission_policy_binding_spec_local_var) { + return NULL; + } + v1_validating_admission_policy_binding_spec_local_var->match_resources = match_resources; + v1_validating_admission_policy_binding_spec_local_var->param_ref = param_ref; + v1_validating_admission_policy_binding_spec_local_var->policy_name = policy_name; + v1_validating_admission_policy_binding_spec_local_var->validation_actions = validation_actions; + + return v1_validating_admission_policy_binding_spec_local_var; +} + + +void v1_validating_admission_policy_binding_spec_free(v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec) { + if(NULL == v1_validating_admission_policy_binding_spec){ + return ; + } + listEntry_t *listEntry; + if (v1_validating_admission_policy_binding_spec->match_resources) { + v1_match_resources_free(v1_validating_admission_policy_binding_spec->match_resources); + v1_validating_admission_policy_binding_spec->match_resources = NULL; + } + if (v1_validating_admission_policy_binding_spec->param_ref) { + v1_param_ref_free(v1_validating_admission_policy_binding_spec->param_ref); + v1_validating_admission_policy_binding_spec->param_ref = NULL; + } + if (v1_validating_admission_policy_binding_spec->policy_name) { + free(v1_validating_admission_policy_binding_spec->policy_name); + v1_validating_admission_policy_binding_spec->policy_name = NULL; + } + if (v1_validating_admission_policy_binding_spec->validation_actions) { + list_ForEach(listEntry, v1_validating_admission_policy_binding_spec->validation_actions) { + free(listEntry->data); + } + list_freeList(v1_validating_admission_policy_binding_spec->validation_actions); + v1_validating_admission_policy_binding_spec->validation_actions = NULL; + } + free(v1_validating_admission_policy_binding_spec); +} + +cJSON *v1_validating_admission_policy_binding_spec_convertToJSON(v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec) { + cJSON *item = cJSON_CreateObject(); + + // v1_validating_admission_policy_binding_spec->match_resources + if(v1_validating_admission_policy_binding_spec->match_resources) { + cJSON *match_resources_local_JSON = v1_match_resources_convertToJSON(v1_validating_admission_policy_binding_spec->match_resources); + if(match_resources_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "matchResources", match_resources_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_validating_admission_policy_binding_spec->param_ref + if(v1_validating_admission_policy_binding_spec->param_ref) { + cJSON *param_ref_local_JSON = v1_param_ref_convertToJSON(v1_validating_admission_policy_binding_spec->param_ref); + if(param_ref_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "paramRef", param_ref_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_validating_admission_policy_binding_spec->policy_name + if(v1_validating_admission_policy_binding_spec->policy_name) { + if(cJSON_AddStringToObject(item, "policyName", v1_validating_admission_policy_binding_spec->policy_name) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy_binding_spec->validation_actions + if(v1_validating_admission_policy_binding_spec->validation_actions) { + cJSON *validation_actions = cJSON_AddArrayToObject(item, "validationActions"); + if(validation_actions == NULL) { + goto fail; //primitive container + } + + listEntry_t *validation_actionsListEntry; + list_ForEach(validation_actionsListEntry, v1_validating_admission_policy_binding_spec->validation_actions) { + if(cJSON_AddStringToObject(validation_actions, "", (char*)validation_actionsListEntry->data) == NULL) + { + goto fail; + } + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec_parseFromJSON(cJSON *v1_validating_admission_policy_binding_specJSON){ + + v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec_local_var = NULL; + + // define the local variable for v1_validating_admission_policy_binding_spec->match_resources + v1_match_resources_t *match_resources_local_nonprim = NULL; + + // define the local variable for v1_validating_admission_policy_binding_spec->param_ref + v1_param_ref_t *param_ref_local_nonprim = NULL; + + // define the local list for v1_validating_admission_policy_binding_spec->validation_actions + list_t *validation_actionsList = NULL; + + // v1_validating_admission_policy_binding_spec->match_resources + cJSON *match_resources = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_binding_specJSON, "matchResources"); + if (match_resources) { + match_resources_local_nonprim = v1_match_resources_parseFromJSON(match_resources); //nonprimitive + } + + // v1_validating_admission_policy_binding_spec->param_ref + cJSON *param_ref = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_binding_specJSON, "paramRef"); + if (param_ref) { + param_ref_local_nonprim = v1_param_ref_parseFromJSON(param_ref); //nonprimitive + } + + // v1_validating_admission_policy_binding_spec->policy_name + cJSON *policy_name = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_binding_specJSON, "policyName"); + if (policy_name) { + if(!cJSON_IsString(policy_name) && !cJSON_IsNull(policy_name)) + { + goto end; //String + } + } + + // v1_validating_admission_policy_binding_spec->validation_actions + cJSON *validation_actions = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_binding_specJSON, "validationActions"); + if (validation_actions) { + cJSON *validation_actions_local = NULL; + if(!cJSON_IsArray(validation_actions)) { + goto end;//primitive container + } + validation_actionsList = list_createList(); + + cJSON_ArrayForEach(validation_actions_local, validation_actions) + { + if(!cJSON_IsString(validation_actions_local)) + { + goto end; + } + list_addElement(validation_actionsList , strdup(validation_actions_local->valuestring)); + } + } + + + v1_validating_admission_policy_binding_spec_local_var = v1_validating_admission_policy_binding_spec_create ( + match_resources ? match_resources_local_nonprim : NULL, + param_ref ? param_ref_local_nonprim : NULL, + policy_name && !cJSON_IsNull(policy_name) ? strdup(policy_name->valuestring) : NULL, + validation_actions ? validation_actionsList : NULL + ); + + return v1_validating_admission_policy_binding_spec_local_var; +end: + if (match_resources_local_nonprim) { + v1_match_resources_free(match_resources_local_nonprim); + match_resources_local_nonprim = NULL; + } + if (param_ref_local_nonprim) { + v1_param_ref_free(param_ref_local_nonprim); + param_ref_local_nonprim = NULL; + } + if (validation_actionsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, validation_actionsList) { + free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(validation_actionsList); + validation_actionsList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_validating_admission_policy_binding_spec.h b/kubernetes/model/v1_validating_admission_policy_binding_spec.h new file mode 100644 index 0000000..d55167b --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_binding_spec.h @@ -0,0 +1,45 @@ +/* + * v1_validating_admission_policy_binding_spec.h + * + * ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding. + */ + +#ifndef _v1_validating_admission_policy_binding_spec_H_ +#define _v1_validating_admission_policy_binding_spec_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_validating_admission_policy_binding_spec_t v1_validating_admission_policy_binding_spec_t; + +#include "v1_match_resources.h" +#include "v1_param_ref.h" + + + +typedef struct v1_validating_admission_policy_binding_spec_t { + struct v1_match_resources_t *match_resources; //model + struct v1_param_ref_t *param_ref; //model + char *policy_name; // string + list_t *validation_actions; //primitive container + +} v1_validating_admission_policy_binding_spec_t; + +v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec_create( + v1_match_resources_t *match_resources, + v1_param_ref_t *param_ref, + char *policy_name, + list_t *validation_actions +); + +void v1_validating_admission_policy_binding_spec_free(v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec); + +v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec_parseFromJSON(cJSON *v1_validating_admission_policy_binding_specJSON); + +cJSON *v1_validating_admission_policy_binding_spec_convertToJSON(v1_validating_admission_policy_binding_spec_t *v1_validating_admission_policy_binding_spec); + +#endif /* _v1_validating_admission_policy_binding_spec_H_ */ + diff --git a/kubernetes/model/v1_validating_admission_policy_list.c b/kubernetes/model/v1_validating_admission_policy_list.c new file mode 100644 index 0000000..15aff92 --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_list.c @@ -0,0 +1,193 @@ +#include +#include +#include +#include "v1_validating_admission_policy_list.h" + + + +v1_validating_admission_policy_list_t *v1_validating_admission_policy_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata + ) { + v1_validating_admission_policy_list_t *v1_validating_admission_policy_list_local_var = malloc(sizeof(v1_validating_admission_policy_list_t)); + if (!v1_validating_admission_policy_list_local_var) { + return NULL; + } + v1_validating_admission_policy_list_local_var->api_version = api_version; + v1_validating_admission_policy_list_local_var->items = items; + v1_validating_admission_policy_list_local_var->kind = kind; + v1_validating_admission_policy_list_local_var->metadata = metadata; + + return v1_validating_admission_policy_list_local_var; +} + + +void v1_validating_admission_policy_list_free(v1_validating_admission_policy_list_t *v1_validating_admission_policy_list) { + if(NULL == v1_validating_admission_policy_list){ + return ; + } + listEntry_t *listEntry; + if (v1_validating_admission_policy_list->api_version) { + free(v1_validating_admission_policy_list->api_version); + v1_validating_admission_policy_list->api_version = NULL; + } + if (v1_validating_admission_policy_list->items) { + list_ForEach(listEntry, v1_validating_admission_policy_list->items) { + v1_validating_admission_policy_free(listEntry->data); + } + list_freeList(v1_validating_admission_policy_list->items); + v1_validating_admission_policy_list->items = NULL; + } + if (v1_validating_admission_policy_list->kind) { + free(v1_validating_admission_policy_list->kind); + v1_validating_admission_policy_list->kind = NULL; + } + if (v1_validating_admission_policy_list->metadata) { + v1_list_meta_free(v1_validating_admission_policy_list->metadata); + v1_validating_admission_policy_list->metadata = NULL; + } + free(v1_validating_admission_policy_list); +} + +cJSON *v1_validating_admission_policy_list_convertToJSON(v1_validating_admission_policy_list_t *v1_validating_admission_policy_list) { + cJSON *item = cJSON_CreateObject(); + + // v1_validating_admission_policy_list->api_version + if(v1_validating_admission_policy_list->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1_validating_admission_policy_list->api_version) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy_list->items + if(v1_validating_admission_policy_list->items) { + cJSON *items = cJSON_AddArrayToObject(item, "items"); + if(items == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *itemsListEntry; + if (v1_validating_admission_policy_list->items) { + list_ForEach(itemsListEntry, v1_validating_admission_policy_list->items) { + cJSON *itemLocal = v1_validating_admission_policy_convertToJSON(itemsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(items, itemLocal); + } + } + } + + + // v1_validating_admission_policy_list->kind + if(v1_validating_admission_policy_list->kind) { + if(cJSON_AddStringToObject(item, "kind", v1_validating_admission_policy_list->kind) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy_list->metadata + if(v1_validating_admission_policy_list->metadata) { + cJSON *metadata_local_JSON = v1_list_meta_convertToJSON(v1_validating_admission_policy_list->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_validating_admission_policy_list_t *v1_validating_admission_policy_list_parseFromJSON(cJSON *v1_validating_admission_policy_listJSON){ + + v1_validating_admission_policy_list_t *v1_validating_admission_policy_list_local_var = NULL; + + // define the local list for v1_validating_admission_policy_list->items + list_t *itemsList = NULL; + + // define the local variable for v1_validating_admission_policy_list->metadata + v1_list_meta_t *metadata_local_nonprim = NULL; + + // v1_validating_admission_policy_list->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_listJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1_validating_admission_policy_list->items + cJSON *items = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_listJSON, "items"); + if (items) { + cJSON *items_local_nonprimitive = NULL; + if(!cJSON_IsArray(items)){ + goto end; //nonprimitive container + } + + itemsList = list_createList(); + + cJSON_ArrayForEach(items_local_nonprimitive,items ) + { + if(!cJSON_IsObject(items_local_nonprimitive)){ + goto end; + } + v1_validating_admission_policy_t *itemsItem = v1_validating_admission_policy_parseFromJSON(items_local_nonprimitive); + + list_addElement(itemsList, itemsItem); + } + } + + // v1_validating_admission_policy_list->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_listJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1_validating_admission_policy_list->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_listJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_list_meta_parseFromJSON(metadata); //nonprimitive + } + + + v1_validating_admission_policy_list_local_var = v1_validating_admission_policy_list_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + items ? itemsList : NULL, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL + ); + + return v1_validating_admission_policy_list_local_var; +end: + if (itemsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, itemsList) { + v1_validating_admission_policy_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(itemsList); + itemsList = NULL; + } + if (metadata_local_nonprim) { + v1_list_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_validating_admission_policy_list.h b/kubernetes/model/v1_validating_admission_policy_list.h new file mode 100644 index 0000000..0a96aa4 --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_list.h @@ -0,0 +1,45 @@ +/* + * v1_validating_admission_policy_list.h + * + * ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy. + */ + +#ifndef _v1_validating_admission_policy_list_H_ +#define _v1_validating_admission_policy_list_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_validating_admission_policy_list_t v1_validating_admission_policy_list_t; + +#include "v1_list_meta.h" +#include "v1_validating_admission_policy.h" + + + +typedef struct v1_validating_admission_policy_list_t { + char *api_version; // string + list_t *items; //nonprimitive container + char *kind; // string + struct v1_list_meta_t *metadata; //model + +} v1_validating_admission_policy_list_t; + +v1_validating_admission_policy_list_t *v1_validating_admission_policy_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata +); + +void v1_validating_admission_policy_list_free(v1_validating_admission_policy_list_t *v1_validating_admission_policy_list); + +v1_validating_admission_policy_list_t *v1_validating_admission_policy_list_parseFromJSON(cJSON *v1_validating_admission_policy_listJSON); + +cJSON *v1_validating_admission_policy_list_convertToJSON(v1_validating_admission_policy_list_t *v1_validating_admission_policy_list); + +#endif /* _v1_validating_admission_policy_list_H_ */ + diff --git a/kubernetes/model/v1_validating_admission_policy_spec.c b/kubernetes/model/v1_validating_admission_policy_spec.c new file mode 100644 index 0000000..21459bb --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_spec.c @@ -0,0 +1,391 @@ +#include +#include +#include +#include "v1_validating_admission_policy_spec.h" + + + +v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec_create( + list_t *audit_annotations, + char *failure_policy, + list_t *match_conditions, + v1_match_resources_t *match_constraints, + v1_param_kind_t *param_kind, + list_t *validations, + list_t *variables + ) { + v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec_local_var = malloc(sizeof(v1_validating_admission_policy_spec_t)); + if (!v1_validating_admission_policy_spec_local_var) { + return NULL; + } + v1_validating_admission_policy_spec_local_var->audit_annotations = audit_annotations; + v1_validating_admission_policy_spec_local_var->failure_policy = failure_policy; + v1_validating_admission_policy_spec_local_var->match_conditions = match_conditions; + v1_validating_admission_policy_spec_local_var->match_constraints = match_constraints; + v1_validating_admission_policy_spec_local_var->param_kind = param_kind; + v1_validating_admission_policy_spec_local_var->validations = validations; + v1_validating_admission_policy_spec_local_var->variables = variables; + + return v1_validating_admission_policy_spec_local_var; +} + + +void v1_validating_admission_policy_spec_free(v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec) { + if(NULL == v1_validating_admission_policy_spec){ + return ; + } + listEntry_t *listEntry; + if (v1_validating_admission_policy_spec->audit_annotations) { + list_ForEach(listEntry, v1_validating_admission_policy_spec->audit_annotations) { + v1_audit_annotation_free(listEntry->data); + } + list_freeList(v1_validating_admission_policy_spec->audit_annotations); + v1_validating_admission_policy_spec->audit_annotations = NULL; + } + if (v1_validating_admission_policy_spec->failure_policy) { + free(v1_validating_admission_policy_spec->failure_policy); + v1_validating_admission_policy_spec->failure_policy = NULL; + } + if (v1_validating_admission_policy_spec->match_conditions) { + list_ForEach(listEntry, v1_validating_admission_policy_spec->match_conditions) { + v1_match_condition_free(listEntry->data); + } + list_freeList(v1_validating_admission_policy_spec->match_conditions); + v1_validating_admission_policy_spec->match_conditions = NULL; + } + if (v1_validating_admission_policy_spec->match_constraints) { + v1_match_resources_free(v1_validating_admission_policy_spec->match_constraints); + v1_validating_admission_policy_spec->match_constraints = NULL; + } + if (v1_validating_admission_policy_spec->param_kind) { + v1_param_kind_free(v1_validating_admission_policy_spec->param_kind); + v1_validating_admission_policy_spec->param_kind = NULL; + } + if (v1_validating_admission_policy_spec->validations) { + list_ForEach(listEntry, v1_validating_admission_policy_spec->validations) { + v1_validation_free(listEntry->data); + } + list_freeList(v1_validating_admission_policy_spec->validations); + v1_validating_admission_policy_spec->validations = NULL; + } + if (v1_validating_admission_policy_spec->variables) { + list_ForEach(listEntry, v1_validating_admission_policy_spec->variables) { + v1_variable_free(listEntry->data); + } + list_freeList(v1_validating_admission_policy_spec->variables); + v1_validating_admission_policy_spec->variables = NULL; + } + free(v1_validating_admission_policy_spec); +} + +cJSON *v1_validating_admission_policy_spec_convertToJSON(v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec) { + cJSON *item = cJSON_CreateObject(); + + // v1_validating_admission_policy_spec->audit_annotations + if(v1_validating_admission_policy_spec->audit_annotations) { + cJSON *audit_annotations = cJSON_AddArrayToObject(item, "auditAnnotations"); + if(audit_annotations == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *audit_annotationsListEntry; + if (v1_validating_admission_policy_spec->audit_annotations) { + list_ForEach(audit_annotationsListEntry, v1_validating_admission_policy_spec->audit_annotations) { + cJSON *itemLocal = v1_audit_annotation_convertToJSON(audit_annotationsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(audit_annotations, itemLocal); + } + } + } + + + // v1_validating_admission_policy_spec->failure_policy + if(v1_validating_admission_policy_spec->failure_policy) { + if(cJSON_AddStringToObject(item, "failurePolicy", v1_validating_admission_policy_spec->failure_policy) == NULL) { + goto fail; //String + } + } + + + // v1_validating_admission_policy_spec->match_conditions + if(v1_validating_admission_policy_spec->match_conditions) { + cJSON *match_conditions = cJSON_AddArrayToObject(item, "matchConditions"); + if(match_conditions == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *match_conditionsListEntry; + if (v1_validating_admission_policy_spec->match_conditions) { + list_ForEach(match_conditionsListEntry, v1_validating_admission_policy_spec->match_conditions) { + cJSON *itemLocal = v1_match_condition_convertToJSON(match_conditionsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(match_conditions, itemLocal); + } + } + } + + + // v1_validating_admission_policy_spec->match_constraints + if(v1_validating_admission_policy_spec->match_constraints) { + cJSON *match_constraints_local_JSON = v1_match_resources_convertToJSON(v1_validating_admission_policy_spec->match_constraints); + if(match_constraints_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "matchConstraints", match_constraints_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_validating_admission_policy_spec->param_kind + if(v1_validating_admission_policy_spec->param_kind) { + cJSON *param_kind_local_JSON = v1_param_kind_convertToJSON(v1_validating_admission_policy_spec->param_kind); + if(param_kind_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "paramKind", param_kind_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1_validating_admission_policy_spec->validations + if(v1_validating_admission_policy_spec->validations) { + cJSON *validations = cJSON_AddArrayToObject(item, "validations"); + if(validations == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *validationsListEntry; + if (v1_validating_admission_policy_spec->validations) { + list_ForEach(validationsListEntry, v1_validating_admission_policy_spec->validations) { + cJSON *itemLocal = v1_validation_convertToJSON(validationsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(validations, itemLocal); + } + } + } + + + // v1_validating_admission_policy_spec->variables + if(v1_validating_admission_policy_spec->variables) { + cJSON *variables = cJSON_AddArrayToObject(item, "variables"); + if(variables == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *variablesListEntry; + if (v1_validating_admission_policy_spec->variables) { + list_ForEach(variablesListEntry, v1_validating_admission_policy_spec->variables) { + cJSON *itemLocal = v1_variable_convertToJSON(variablesListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(variables, itemLocal); + } + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec_parseFromJSON(cJSON *v1_validating_admission_policy_specJSON){ + + v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec_local_var = NULL; + + // define the local list for v1_validating_admission_policy_spec->audit_annotations + list_t *audit_annotationsList = NULL; + + // define the local list for v1_validating_admission_policy_spec->match_conditions + list_t *match_conditionsList = NULL; + + // define the local variable for v1_validating_admission_policy_spec->match_constraints + v1_match_resources_t *match_constraints_local_nonprim = NULL; + + // define the local variable for v1_validating_admission_policy_spec->param_kind + v1_param_kind_t *param_kind_local_nonprim = NULL; + + // define the local list for v1_validating_admission_policy_spec->validations + list_t *validationsList = NULL; + + // define the local list for v1_validating_admission_policy_spec->variables + list_t *variablesList = NULL; + + // v1_validating_admission_policy_spec->audit_annotations + cJSON *audit_annotations = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_specJSON, "auditAnnotations"); + if (audit_annotations) { + cJSON *audit_annotations_local_nonprimitive = NULL; + if(!cJSON_IsArray(audit_annotations)){ + goto end; //nonprimitive container + } + + audit_annotationsList = list_createList(); + + cJSON_ArrayForEach(audit_annotations_local_nonprimitive,audit_annotations ) + { + if(!cJSON_IsObject(audit_annotations_local_nonprimitive)){ + goto end; + } + v1_audit_annotation_t *audit_annotationsItem = v1_audit_annotation_parseFromJSON(audit_annotations_local_nonprimitive); + + list_addElement(audit_annotationsList, audit_annotationsItem); + } + } + + // v1_validating_admission_policy_spec->failure_policy + cJSON *failure_policy = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_specJSON, "failurePolicy"); + if (failure_policy) { + if(!cJSON_IsString(failure_policy) && !cJSON_IsNull(failure_policy)) + { + goto end; //String + } + } + + // v1_validating_admission_policy_spec->match_conditions + cJSON *match_conditions = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_specJSON, "matchConditions"); + if (match_conditions) { + cJSON *match_conditions_local_nonprimitive = NULL; + if(!cJSON_IsArray(match_conditions)){ + goto end; //nonprimitive container + } + + match_conditionsList = list_createList(); + + cJSON_ArrayForEach(match_conditions_local_nonprimitive,match_conditions ) + { + if(!cJSON_IsObject(match_conditions_local_nonprimitive)){ + goto end; + } + v1_match_condition_t *match_conditionsItem = v1_match_condition_parseFromJSON(match_conditions_local_nonprimitive); + + list_addElement(match_conditionsList, match_conditionsItem); + } + } + + // v1_validating_admission_policy_spec->match_constraints + cJSON *match_constraints = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_specJSON, "matchConstraints"); + if (match_constraints) { + match_constraints_local_nonprim = v1_match_resources_parseFromJSON(match_constraints); //nonprimitive + } + + // v1_validating_admission_policy_spec->param_kind + cJSON *param_kind = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_specJSON, "paramKind"); + if (param_kind) { + param_kind_local_nonprim = v1_param_kind_parseFromJSON(param_kind); //nonprimitive + } + + // v1_validating_admission_policy_spec->validations + cJSON *validations = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_specJSON, "validations"); + if (validations) { + cJSON *validations_local_nonprimitive = NULL; + if(!cJSON_IsArray(validations)){ + goto end; //nonprimitive container + } + + validationsList = list_createList(); + + cJSON_ArrayForEach(validations_local_nonprimitive,validations ) + { + if(!cJSON_IsObject(validations_local_nonprimitive)){ + goto end; + } + v1_validation_t *validationsItem = v1_validation_parseFromJSON(validations_local_nonprimitive); + + list_addElement(validationsList, validationsItem); + } + } + + // v1_validating_admission_policy_spec->variables + cJSON *variables = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_specJSON, "variables"); + if (variables) { + cJSON *variables_local_nonprimitive = NULL; + if(!cJSON_IsArray(variables)){ + goto end; //nonprimitive container + } + + variablesList = list_createList(); + + cJSON_ArrayForEach(variables_local_nonprimitive,variables ) + { + if(!cJSON_IsObject(variables_local_nonprimitive)){ + goto end; + } + v1_variable_t *variablesItem = v1_variable_parseFromJSON(variables_local_nonprimitive); + + list_addElement(variablesList, variablesItem); + } + } + + + v1_validating_admission_policy_spec_local_var = v1_validating_admission_policy_spec_create ( + audit_annotations ? audit_annotationsList : NULL, + failure_policy && !cJSON_IsNull(failure_policy) ? strdup(failure_policy->valuestring) : NULL, + match_conditions ? match_conditionsList : NULL, + match_constraints ? match_constraints_local_nonprim : NULL, + param_kind ? param_kind_local_nonprim : NULL, + validations ? validationsList : NULL, + variables ? variablesList : NULL + ); + + return v1_validating_admission_policy_spec_local_var; +end: + if (audit_annotationsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, audit_annotationsList) { + v1_audit_annotation_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(audit_annotationsList); + audit_annotationsList = NULL; + } + if (match_conditionsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, match_conditionsList) { + v1_match_condition_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(match_conditionsList); + match_conditionsList = NULL; + } + if (match_constraints_local_nonprim) { + v1_match_resources_free(match_constraints_local_nonprim); + match_constraints_local_nonprim = NULL; + } + if (param_kind_local_nonprim) { + v1_param_kind_free(param_kind_local_nonprim); + param_kind_local_nonprim = NULL; + } + if (validationsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, validationsList) { + v1_validation_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(validationsList); + validationsList = NULL; + } + if (variablesList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, variablesList) { + v1_variable_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(variablesList); + variablesList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_validating_admission_policy_spec.h b/kubernetes/model/v1_validating_admission_policy_spec.h new file mode 100644 index 0000000..d101ac6 --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_spec.h @@ -0,0 +1,55 @@ +/* + * v1_validating_admission_policy_spec.h + * + * ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy. + */ + +#ifndef _v1_validating_admission_policy_spec_H_ +#define _v1_validating_admission_policy_spec_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_validating_admission_policy_spec_t v1_validating_admission_policy_spec_t; + +#include "v1_audit_annotation.h" +#include "v1_match_condition.h" +#include "v1_match_resources.h" +#include "v1_param_kind.h" +#include "v1_validation.h" +#include "v1_variable.h" + + + +typedef struct v1_validating_admission_policy_spec_t { + list_t *audit_annotations; //nonprimitive container + char *failure_policy; // string + list_t *match_conditions; //nonprimitive container + struct v1_match_resources_t *match_constraints; //model + struct v1_param_kind_t *param_kind; //model + list_t *validations; //nonprimitive container + list_t *variables; //nonprimitive container + +} v1_validating_admission_policy_spec_t; + +v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec_create( + list_t *audit_annotations, + char *failure_policy, + list_t *match_conditions, + v1_match_resources_t *match_constraints, + v1_param_kind_t *param_kind, + list_t *validations, + list_t *variables +); + +void v1_validating_admission_policy_spec_free(v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec); + +v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec_parseFromJSON(cJSON *v1_validating_admission_policy_specJSON); + +cJSON *v1_validating_admission_policy_spec_convertToJSON(v1_validating_admission_policy_spec_t *v1_validating_admission_policy_spec); + +#endif /* _v1_validating_admission_policy_spec_H_ */ + diff --git a/kubernetes/model/v1_validating_admission_policy_status.c b/kubernetes/model/v1_validating_admission_policy_status.c new file mode 100644 index 0000000..865935a --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_status.c @@ -0,0 +1,165 @@ +#include +#include +#include +#include "v1_validating_admission_policy_status.h" + + + +v1_validating_admission_policy_status_t *v1_validating_admission_policy_status_create( + list_t *conditions, + long observed_generation, + v1_type_checking_t *type_checking + ) { + v1_validating_admission_policy_status_t *v1_validating_admission_policy_status_local_var = malloc(sizeof(v1_validating_admission_policy_status_t)); + if (!v1_validating_admission_policy_status_local_var) { + return NULL; + } + v1_validating_admission_policy_status_local_var->conditions = conditions; + v1_validating_admission_policy_status_local_var->observed_generation = observed_generation; + v1_validating_admission_policy_status_local_var->type_checking = type_checking; + + return v1_validating_admission_policy_status_local_var; +} + + +void v1_validating_admission_policy_status_free(v1_validating_admission_policy_status_t *v1_validating_admission_policy_status) { + if(NULL == v1_validating_admission_policy_status){ + return ; + } + listEntry_t *listEntry; + if (v1_validating_admission_policy_status->conditions) { + list_ForEach(listEntry, v1_validating_admission_policy_status->conditions) { + v1_condition_free(listEntry->data); + } + list_freeList(v1_validating_admission_policy_status->conditions); + v1_validating_admission_policy_status->conditions = NULL; + } + if (v1_validating_admission_policy_status->type_checking) { + v1_type_checking_free(v1_validating_admission_policy_status->type_checking); + v1_validating_admission_policy_status->type_checking = NULL; + } + free(v1_validating_admission_policy_status); +} + +cJSON *v1_validating_admission_policy_status_convertToJSON(v1_validating_admission_policy_status_t *v1_validating_admission_policy_status) { + cJSON *item = cJSON_CreateObject(); + + // v1_validating_admission_policy_status->conditions + if(v1_validating_admission_policy_status->conditions) { + cJSON *conditions = cJSON_AddArrayToObject(item, "conditions"); + if(conditions == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *conditionsListEntry; + if (v1_validating_admission_policy_status->conditions) { + list_ForEach(conditionsListEntry, v1_validating_admission_policy_status->conditions) { + cJSON *itemLocal = v1_condition_convertToJSON(conditionsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(conditions, itemLocal); + } + } + } + + + // v1_validating_admission_policy_status->observed_generation + if(v1_validating_admission_policy_status->observed_generation) { + if(cJSON_AddNumberToObject(item, "observedGeneration", v1_validating_admission_policy_status->observed_generation) == NULL) { + goto fail; //Numeric + } + } + + + // v1_validating_admission_policy_status->type_checking + if(v1_validating_admission_policy_status->type_checking) { + cJSON *type_checking_local_JSON = v1_type_checking_convertToJSON(v1_validating_admission_policy_status->type_checking); + if(type_checking_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "typeChecking", type_checking_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_validating_admission_policy_status_t *v1_validating_admission_policy_status_parseFromJSON(cJSON *v1_validating_admission_policy_statusJSON){ + + v1_validating_admission_policy_status_t *v1_validating_admission_policy_status_local_var = NULL; + + // define the local list for v1_validating_admission_policy_status->conditions + list_t *conditionsList = NULL; + + // define the local variable for v1_validating_admission_policy_status->type_checking + v1_type_checking_t *type_checking_local_nonprim = NULL; + + // v1_validating_admission_policy_status->conditions + cJSON *conditions = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_statusJSON, "conditions"); + if (conditions) { + cJSON *conditions_local_nonprimitive = NULL; + if(!cJSON_IsArray(conditions)){ + goto end; //nonprimitive container + } + + conditionsList = list_createList(); + + cJSON_ArrayForEach(conditions_local_nonprimitive,conditions ) + { + if(!cJSON_IsObject(conditions_local_nonprimitive)){ + goto end; + } + v1_condition_t *conditionsItem = v1_condition_parseFromJSON(conditions_local_nonprimitive); + + list_addElement(conditionsList, conditionsItem); + } + } + + // v1_validating_admission_policy_status->observed_generation + cJSON *observed_generation = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_statusJSON, "observedGeneration"); + if (observed_generation) { + if(!cJSON_IsNumber(observed_generation)) + { + goto end; //Numeric + } + } + + // v1_validating_admission_policy_status->type_checking + cJSON *type_checking = cJSON_GetObjectItemCaseSensitive(v1_validating_admission_policy_statusJSON, "typeChecking"); + if (type_checking) { + type_checking_local_nonprim = v1_type_checking_parseFromJSON(type_checking); //nonprimitive + } + + + v1_validating_admission_policy_status_local_var = v1_validating_admission_policy_status_create ( + conditions ? conditionsList : NULL, + observed_generation ? observed_generation->valuedouble : 0, + type_checking ? type_checking_local_nonprim : NULL + ); + + return v1_validating_admission_policy_status_local_var; +end: + if (conditionsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, conditionsList) { + v1_condition_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(conditionsList); + conditionsList = NULL; + } + if (type_checking_local_nonprim) { + v1_type_checking_free(type_checking_local_nonprim); + type_checking_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1_validating_admission_policy_status.h b/kubernetes/model/v1_validating_admission_policy_status.h new file mode 100644 index 0000000..558ecea --- /dev/null +++ b/kubernetes/model/v1_validating_admission_policy_status.h @@ -0,0 +1,43 @@ +/* + * v1_validating_admission_policy_status.h + * + * ValidatingAdmissionPolicyStatus represents the status of an admission validation policy. + */ + +#ifndef _v1_validating_admission_policy_status_H_ +#define _v1_validating_admission_policy_status_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_validating_admission_policy_status_t v1_validating_admission_policy_status_t; + +#include "v1_condition.h" +#include "v1_type_checking.h" + + + +typedef struct v1_validating_admission_policy_status_t { + list_t *conditions; //nonprimitive container + long observed_generation; //numeric + struct v1_type_checking_t *type_checking; //model + +} v1_validating_admission_policy_status_t; + +v1_validating_admission_policy_status_t *v1_validating_admission_policy_status_create( + list_t *conditions, + long observed_generation, + v1_type_checking_t *type_checking +); + +void v1_validating_admission_policy_status_free(v1_validating_admission_policy_status_t *v1_validating_admission_policy_status); + +v1_validating_admission_policy_status_t *v1_validating_admission_policy_status_parseFromJSON(cJSON *v1_validating_admission_policy_statusJSON); + +cJSON *v1_validating_admission_policy_status_convertToJSON(v1_validating_admission_policy_status_t *v1_validating_admission_policy_status); + +#endif /* _v1_validating_admission_policy_status_H_ */ + diff --git a/kubernetes/model/v1_validation.c b/kubernetes/model/v1_validation.c new file mode 100644 index 0000000..e01aa33 --- /dev/null +++ b/kubernetes/model/v1_validation.c @@ -0,0 +1,149 @@ +#include +#include +#include +#include "v1_validation.h" + + + +v1_validation_t *v1_validation_create( + char *expression, + char *message, + char *message_expression, + char *reason + ) { + v1_validation_t *v1_validation_local_var = malloc(sizeof(v1_validation_t)); + if (!v1_validation_local_var) { + return NULL; + } + v1_validation_local_var->expression = expression; + v1_validation_local_var->message = message; + v1_validation_local_var->message_expression = message_expression; + v1_validation_local_var->reason = reason; + + return v1_validation_local_var; +} + + +void v1_validation_free(v1_validation_t *v1_validation) { + if(NULL == v1_validation){ + return ; + } + listEntry_t *listEntry; + if (v1_validation->expression) { + free(v1_validation->expression); + v1_validation->expression = NULL; + } + if (v1_validation->message) { + free(v1_validation->message); + v1_validation->message = NULL; + } + if (v1_validation->message_expression) { + free(v1_validation->message_expression); + v1_validation->message_expression = NULL; + } + if (v1_validation->reason) { + free(v1_validation->reason); + v1_validation->reason = NULL; + } + free(v1_validation); +} + +cJSON *v1_validation_convertToJSON(v1_validation_t *v1_validation) { + cJSON *item = cJSON_CreateObject(); + + // v1_validation->expression + if (!v1_validation->expression) { + goto fail; + } + if(cJSON_AddStringToObject(item, "expression", v1_validation->expression) == NULL) { + goto fail; //String + } + + + // v1_validation->message + if(v1_validation->message) { + if(cJSON_AddStringToObject(item, "message", v1_validation->message) == NULL) { + goto fail; //String + } + } + + + // v1_validation->message_expression + if(v1_validation->message_expression) { + if(cJSON_AddStringToObject(item, "messageExpression", v1_validation->message_expression) == NULL) { + goto fail; //String + } + } + + + // v1_validation->reason + if(v1_validation->reason) { + if(cJSON_AddStringToObject(item, "reason", v1_validation->reason) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_validation_t *v1_validation_parseFromJSON(cJSON *v1_validationJSON){ + + v1_validation_t *v1_validation_local_var = NULL; + + // v1_validation->expression + cJSON *expression = cJSON_GetObjectItemCaseSensitive(v1_validationJSON, "expression"); + if (!expression) { + goto end; + } + + + if(!cJSON_IsString(expression)) + { + goto end; //String + } + + // v1_validation->message + cJSON *message = cJSON_GetObjectItemCaseSensitive(v1_validationJSON, "message"); + if (message) { + if(!cJSON_IsString(message) && !cJSON_IsNull(message)) + { + goto end; //String + } + } + + // v1_validation->message_expression + cJSON *message_expression = cJSON_GetObjectItemCaseSensitive(v1_validationJSON, "messageExpression"); + if (message_expression) { + if(!cJSON_IsString(message_expression) && !cJSON_IsNull(message_expression)) + { + goto end; //String + } + } + + // v1_validation->reason + cJSON *reason = cJSON_GetObjectItemCaseSensitive(v1_validationJSON, "reason"); + if (reason) { + if(!cJSON_IsString(reason) && !cJSON_IsNull(reason)) + { + goto end; //String + } + } + + + v1_validation_local_var = v1_validation_create ( + strdup(expression->valuestring), + message && !cJSON_IsNull(message) ? strdup(message->valuestring) : NULL, + message_expression && !cJSON_IsNull(message_expression) ? strdup(message_expression->valuestring) : NULL, + reason && !cJSON_IsNull(reason) ? strdup(reason->valuestring) : NULL + ); + + return v1_validation_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_validation.h b/kubernetes/model/v1_validation.h new file mode 100644 index 0000000..a39ff5c --- /dev/null +++ b/kubernetes/model/v1_validation.h @@ -0,0 +1,43 @@ +/* + * v1_validation.h + * + * Validation specifies the CEL expression which is used to apply the validation. + */ + +#ifndef _v1_validation_H_ +#define _v1_validation_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_validation_t v1_validation_t; + + + + +typedef struct v1_validation_t { + char *expression; // string + char *message; // string + char *message_expression; // string + char *reason; // string + +} v1_validation_t; + +v1_validation_t *v1_validation_create( + char *expression, + char *message, + char *message_expression, + char *reason +); + +void v1_validation_free(v1_validation_t *v1_validation); + +v1_validation_t *v1_validation_parseFromJSON(cJSON *v1_validationJSON); + +cJSON *v1_validation_convertToJSON(v1_validation_t *v1_validation); + +#endif /* _v1_validation_H_ */ + diff --git a/kubernetes/model/v1_variable.c b/kubernetes/model/v1_variable.c new file mode 100644 index 0000000..adb244e --- /dev/null +++ b/kubernetes/model/v1_variable.c @@ -0,0 +1,105 @@ +#include +#include +#include +#include "v1_variable.h" + + + +v1_variable_t *v1_variable_create( + char *expression, + char *name + ) { + v1_variable_t *v1_variable_local_var = malloc(sizeof(v1_variable_t)); + if (!v1_variable_local_var) { + return NULL; + } + v1_variable_local_var->expression = expression; + v1_variable_local_var->name = name; + + return v1_variable_local_var; +} + + +void v1_variable_free(v1_variable_t *v1_variable) { + if(NULL == v1_variable){ + return ; + } + listEntry_t *listEntry; + if (v1_variable->expression) { + free(v1_variable->expression); + v1_variable->expression = NULL; + } + if (v1_variable->name) { + free(v1_variable->name); + v1_variable->name = NULL; + } + free(v1_variable); +} + +cJSON *v1_variable_convertToJSON(v1_variable_t *v1_variable) { + cJSON *item = cJSON_CreateObject(); + + // v1_variable->expression + if (!v1_variable->expression) { + goto fail; + } + if(cJSON_AddStringToObject(item, "expression", v1_variable->expression) == NULL) { + goto fail; //String + } + + + // v1_variable->name + if (!v1_variable->name) { + goto fail; + } + if(cJSON_AddStringToObject(item, "name", v1_variable->name) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_variable_t *v1_variable_parseFromJSON(cJSON *v1_variableJSON){ + + v1_variable_t *v1_variable_local_var = NULL; + + // v1_variable->expression + cJSON *expression = cJSON_GetObjectItemCaseSensitive(v1_variableJSON, "expression"); + if (!expression) { + goto end; + } + + + if(!cJSON_IsString(expression)) + { + goto end; //String + } + + // v1_variable->name + cJSON *name = cJSON_GetObjectItemCaseSensitive(v1_variableJSON, "name"); + if (!name) { + goto end; + } + + + if(!cJSON_IsString(name)) + { + goto end; //String + } + + + v1_variable_local_var = v1_variable_create ( + strdup(expression->valuestring), + strdup(name->valuestring) + ); + + return v1_variable_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_variable.h b/kubernetes/model/v1_variable.h new file mode 100644 index 0000000..3c2246d --- /dev/null +++ b/kubernetes/model/v1_variable.h @@ -0,0 +1,39 @@ +/* + * v1_variable.h + * + * Variable is the definition of a variable that is used for composition. A variable is defined as a named expression. + */ + +#ifndef _v1_variable_H_ +#define _v1_variable_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_variable_t v1_variable_t; + + + + +typedef struct v1_variable_t { + char *expression; // string + char *name; // string + +} v1_variable_t; + +v1_variable_t *v1_variable_create( + char *expression, + char *name +); + +void v1_variable_free(v1_variable_t *v1_variable); + +v1_variable_t *v1_variable_parseFromJSON(cJSON *v1_variableJSON); + +cJSON *v1_variable_convertToJSON(v1_variable_t *v1_variable); + +#endif /* _v1_variable_H_ */ + diff --git a/kubernetes/model/v1_volume_mount.c b/kubernetes/model/v1_volume_mount.c index acbf460..8ea6e86 100644 --- a/kubernetes/model/v1_volume_mount.c +++ b/kubernetes/model/v1_volume_mount.c @@ -10,6 +10,7 @@ v1_volume_mount_t *v1_volume_mount_create( char *mount_propagation, char *name, int read_only, + char *recursive_read_only, char *sub_path, char *sub_path_expr ) { @@ -21,6 +22,7 @@ v1_volume_mount_t *v1_volume_mount_create( v1_volume_mount_local_var->mount_propagation = mount_propagation; v1_volume_mount_local_var->name = name; v1_volume_mount_local_var->read_only = read_only; + v1_volume_mount_local_var->recursive_read_only = recursive_read_only; v1_volume_mount_local_var->sub_path = sub_path; v1_volume_mount_local_var->sub_path_expr = sub_path_expr; @@ -45,6 +47,10 @@ void v1_volume_mount_free(v1_volume_mount_t *v1_volume_mount) { free(v1_volume_mount->name); v1_volume_mount->name = NULL; } + if (v1_volume_mount->recursive_read_only) { + free(v1_volume_mount->recursive_read_only); + v1_volume_mount->recursive_read_only = NULL; + } if (v1_volume_mount->sub_path) { free(v1_volume_mount->sub_path); v1_volume_mount->sub_path = NULL; @@ -93,6 +99,14 @@ cJSON *v1_volume_mount_convertToJSON(v1_volume_mount_t *v1_volume_mount) { } + // v1_volume_mount->recursive_read_only + if(v1_volume_mount->recursive_read_only) { + if(cJSON_AddStringToObject(item, "recursiveReadOnly", v1_volume_mount->recursive_read_only) == NULL) { + goto fail; //String + } + } + + // v1_volume_mount->sub_path if(v1_volume_mount->sub_path) { if(cJSON_AddStringToObject(item, "subPath", v1_volume_mount->sub_path) == NULL) { @@ -162,6 +176,15 @@ v1_volume_mount_t *v1_volume_mount_parseFromJSON(cJSON *v1_volume_mountJSON){ } } + // v1_volume_mount->recursive_read_only + cJSON *recursive_read_only = cJSON_GetObjectItemCaseSensitive(v1_volume_mountJSON, "recursiveReadOnly"); + if (recursive_read_only) { + if(!cJSON_IsString(recursive_read_only) && !cJSON_IsNull(recursive_read_only)) + { + goto end; //String + } + } + // v1_volume_mount->sub_path cJSON *sub_path = cJSON_GetObjectItemCaseSensitive(v1_volume_mountJSON, "subPath"); if (sub_path) { @@ -186,6 +209,7 @@ v1_volume_mount_t *v1_volume_mount_parseFromJSON(cJSON *v1_volume_mountJSON){ mount_propagation && !cJSON_IsNull(mount_propagation) ? strdup(mount_propagation->valuestring) : NULL, strdup(name->valuestring), read_only ? read_only->valueint : 0, + recursive_read_only && !cJSON_IsNull(recursive_read_only) ? strdup(recursive_read_only->valuestring) : NULL, sub_path && !cJSON_IsNull(sub_path) ? strdup(sub_path->valuestring) : NULL, sub_path_expr && !cJSON_IsNull(sub_path_expr) ? strdup(sub_path_expr->valuestring) : NULL ); diff --git a/kubernetes/model/v1_volume_mount.h b/kubernetes/model/v1_volume_mount.h index cc2dc30..d27dcf1 100644 --- a/kubernetes/model/v1_volume_mount.h +++ b/kubernetes/model/v1_volume_mount.h @@ -23,6 +23,7 @@ typedef struct v1_volume_mount_t { char *mount_propagation; // string char *name; // string int read_only; //boolean + char *recursive_read_only; // string char *sub_path; // string char *sub_path_expr; // string @@ -33,6 +34,7 @@ v1_volume_mount_t *v1_volume_mount_create( char *mount_propagation, char *name, int read_only, + char *recursive_read_only, char *sub_path, char *sub_path_expr ); diff --git a/kubernetes/model/v1_volume_mount_status.c b/kubernetes/model/v1_volume_mount_status.c new file mode 100644 index 0000000..3bf2e80 --- /dev/null +++ b/kubernetes/model/v1_volume_mount_status.c @@ -0,0 +1,149 @@ +#include +#include +#include +#include "v1_volume_mount_status.h" + + + +v1_volume_mount_status_t *v1_volume_mount_status_create( + char *mount_path, + char *name, + int read_only, + char *recursive_read_only + ) { + v1_volume_mount_status_t *v1_volume_mount_status_local_var = malloc(sizeof(v1_volume_mount_status_t)); + if (!v1_volume_mount_status_local_var) { + return NULL; + } + v1_volume_mount_status_local_var->mount_path = mount_path; + v1_volume_mount_status_local_var->name = name; + v1_volume_mount_status_local_var->read_only = read_only; + v1_volume_mount_status_local_var->recursive_read_only = recursive_read_only; + + return v1_volume_mount_status_local_var; +} + + +void v1_volume_mount_status_free(v1_volume_mount_status_t *v1_volume_mount_status) { + if(NULL == v1_volume_mount_status){ + return ; + } + listEntry_t *listEntry; + if (v1_volume_mount_status->mount_path) { + free(v1_volume_mount_status->mount_path); + v1_volume_mount_status->mount_path = NULL; + } + if (v1_volume_mount_status->name) { + free(v1_volume_mount_status->name); + v1_volume_mount_status->name = NULL; + } + if (v1_volume_mount_status->recursive_read_only) { + free(v1_volume_mount_status->recursive_read_only); + v1_volume_mount_status->recursive_read_only = NULL; + } + free(v1_volume_mount_status); +} + +cJSON *v1_volume_mount_status_convertToJSON(v1_volume_mount_status_t *v1_volume_mount_status) { + cJSON *item = cJSON_CreateObject(); + + // v1_volume_mount_status->mount_path + if (!v1_volume_mount_status->mount_path) { + goto fail; + } + if(cJSON_AddStringToObject(item, "mountPath", v1_volume_mount_status->mount_path) == NULL) { + goto fail; //String + } + + + // v1_volume_mount_status->name + if (!v1_volume_mount_status->name) { + goto fail; + } + if(cJSON_AddStringToObject(item, "name", v1_volume_mount_status->name) == NULL) { + goto fail; //String + } + + + // v1_volume_mount_status->read_only + if(v1_volume_mount_status->read_only) { + if(cJSON_AddBoolToObject(item, "readOnly", v1_volume_mount_status->read_only) == NULL) { + goto fail; //Bool + } + } + + + // v1_volume_mount_status->recursive_read_only + if(v1_volume_mount_status->recursive_read_only) { + if(cJSON_AddStringToObject(item, "recursiveReadOnly", v1_volume_mount_status->recursive_read_only) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1_volume_mount_status_t *v1_volume_mount_status_parseFromJSON(cJSON *v1_volume_mount_statusJSON){ + + v1_volume_mount_status_t *v1_volume_mount_status_local_var = NULL; + + // v1_volume_mount_status->mount_path + cJSON *mount_path = cJSON_GetObjectItemCaseSensitive(v1_volume_mount_statusJSON, "mountPath"); + if (!mount_path) { + goto end; + } + + + if(!cJSON_IsString(mount_path)) + { + goto end; //String + } + + // v1_volume_mount_status->name + cJSON *name = cJSON_GetObjectItemCaseSensitive(v1_volume_mount_statusJSON, "name"); + if (!name) { + goto end; + } + + + if(!cJSON_IsString(name)) + { + goto end; //String + } + + // v1_volume_mount_status->read_only + cJSON *read_only = cJSON_GetObjectItemCaseSensitive(v1_volume_mount_statusJSON, "readOnly"); + if (read_only) { + if(!cJSON_IsBool(read_only)) + { + goto end; //Bool + } + } + + // v1_volume_mount_status->recursive_read_only + cJSON *recursive_read_only = cJSON_GetObjectItemCaseSensitive(v1_volume_mount_statusJSON, "recursiveReadOnly"); + if (recursive_read_only) { + if(!cJSON_IsString(recursive_read_only) && !cJSON_IsNull(recursive_read_only)) + { + goto end; //String + } + } + + + v1_volume_mount_status_local_var = v1_volume_mount_status_create ( + strdup(mount_path->valuestring), + strdup(name->valuestring), + read_only ? read_only->valueint : 0, + recursive_read_only && !cJSON_IsNull(recursive_read_only) ? strdup(recursive_read_only->valuestring) : NULL + ); + + return v1_volume_mount_status_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1_volume_mount_status.h b/kubernetes/model/v1_volume_mount_status.h new file mode 100644 index 0000000..2191c97 --- /dev/null +++ b/kubernetes/model/v1_volume_mount_status.h @@ -0,0 +1,43 @@ +/* + * v1_volume_mount_status.h + * + * VolumeMountStatus shows status of volume mounts. + */ + +#ifndef _v1_volume_mount_status_H_ +#define _v1_volume_mount_status_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1_volume_mount_status_t v1_volume_mount_status_t; + + + + +typedef struct v1_volume_mount_status_t { + char *mount_path; // string + char *name; // string + int read_only; //boolean + char *recursive_read_only; // string + +} v1_volume_mount_status_t; + +v1_volume_mount_status_t *v1_volume_mount_status_create( + char *mount_path, + char *name, + int read_only, + char *recursive_read_only +); + +void v1_volume_mount_status_free(v1_volume_mount_status_t *v1_volume_mount_status); + +v1_volume_mount_status_t *v1_volume_mount_status_parseFromJSON(cJSON *v1_volume_mount_statusJSON); + +cJSON *v1_volume_mount_status_convertToJSON(v1_volume_mount_status_t *v1_volume_mount_status); + +#endif /* _v1_volume_mount_status_H_ */ + diff --git a/kubernetes/model/v1alpha1_group_version_resource.c b/kubernetes/model/v1alpha1_group_version_resource.c new file mode 100644 index 0000000..360731d --- /dev/null +++ b/kubernetes/model/v1alpha1_group_version_resource.c @@ -0,0 +1,121 @@ +#include +#include +#include +#include "v1alpha1_group_version_resource.h" + + + +v1alpha1_group_version_resource_t *v1alpha1_group_version_resource_create( + char *group, + char *resource, + char *version + ) { + v1alpha1_group_version_resource_t *v1alpha1_group_version_resource_local_var = malloc(sizeof(v1alpha1_group_version_resource_t)); + if (!v1alpha1_group_version_resource_local_var) { + return NULL; + } + v1alpha1_group_version_resource_local_var->group = group; + v1alpha1_group_version_resource_local_var->resource = resource; + v1alpha1_group_version_resource_local_var->version = version; + + return v1alpha1_group_version_resource_local_var; +} + + +void v1alpha1_group_version_resource_free(v1alpha1_group_version_resource_t *v1alpha1_group_version_resource) { + if(NULL == v1alpha1_group_version_resource){ + return ; + } + listEntry_t *listEntry; + if (v1alpha1_group_version_resource->group) { + free(v1alpha1_group_version_resource->group); + v1alpha1_group_version_resource->group = NULL; + } + if (v1alpha1_group_version_resource->resource) { + free(v1alpha1_group_version_resource->resource); + v1alpha1_group_version_resource->resource = NULL; + } + if (v1alpha1_group_version_resource->version) { + free(v1alpha1_group_version_resource->version); + v1alpha1_group_version_resource->version = NULL; + } + free(v1alpha1_group_version_resource); +} + +cJSON *v1alpha1_group_version_resource_convertToJSON(v1alpha1_group_version_resource_t *v1alpha1_group_version_resource) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha1_group_version_resource->group + if(v1alpha1_group_version_resource->group) { + if(cJSON_AddStringToObject(item, "group", v1alpha1_group_version_resource->group) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_group_version_resource->resource + if(v1alpha1_group_version_resource->resource) { + if(cJSON_AddStringToObject(item, "resource", v1alpha1_group_version_resource->resource) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_group_version_resource->version + if(v1alpha1_group_version_resource->version) { + if(cJSON_AddStringToObject(item, "version", v1alpha1_group_version_resource->version) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha1_group_version_resource_t *v1alpha1_group_version_resource_parseFromJSON(cJSON *v1alpha1_group_version_resourceJSON){ + + v1alpha1_group_version_resource_t *v1alpha1_group_version_resource_local_var = NULL; + + // v1alpha1_group_version_resource->group + cJSON *group = cJSON_GetObjectItemCaseSensitive(v1alpha1_group_version_resourceJSON, "group"); + if (group) { + if(!cJSON_IsString(group) && !cJSON_IsNull(group)) + { + goto end; //String + } + } + + // v1alpha1_group_version_resource->resource + cJSON *resource = cJSON_GetObjectItemCaseSensitive(v1alpha1_group_version_resourceJSON, "resource"); + if (resource) { + if(!cJSON_IsString(resource) && !cJSON_IsNull(resource)) + { + goto end; //String + } + } + + // v1alpha1_group_version_resource->version + cJSON *version = cJSON_GetObjectItemCaseSensitive(v1alpha1_group_version_resourceJSON, "version"); + if (version) { + if(!cJSON_IsString(version) && !cJSON_IsNull(version)) + { + goto end; //String + } + } + + + v1alpha1_group_version_resource_local_var = v1alpha1_group_version_resource_create ( + group && !cJSON_IsNull(group) ? strdup(group->valuestring) : NULL, + resource && !cJSON_IsNull(resource) ? strdup(resource->valuestring) : NULL, + version && !cJSON_IsNull(version) ? strdup(version->valuestring) : NULL + ); + + return v1alpha1_group_version_resource_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1alpha1_group_version_resource.h b/kubernetes/model/v1alpha1_group_version_resource.h new file mode 100644 index 0000000..af129d3 --- /dev/null +++ b/kubernetes/model/v1alpha1_group_version_resource.h @@ -0,0 +1,41 @@ +/* + * v1alpha1_group_version_resource.h + * + * The names of the group, the version, and the resource. + */ + +#ifndef _v1alpha1_group_version_resource_H_ +#define _v1alpha1_group_version_resource_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha1_group_version_resource_t v1alpha1_group_version_resource_t; + + + + +typedef struct v1alpha1_group_version_resource_t { + char *group; // string + char *resource; // string + char *version; // string + +} v1alpha1_group_version_resource_t; + +v1alpha1_group_version_resource_t *v1alpha1_group_version_resource_create( + char *group, + char *resource, + char *version +); + +void v1alpha1_group_version_resource_free(v1alpha1_group_version_resource_t *v1alpha1_group_version_resource); + +v1alpha1_group_version_resource_t *v1alpha1_group_version_resource_parseFromJSON(cJSON *v1alpha1_group_version_resourceJSON); + +cJSON *v1alpha1_group_version_resource_convertToJSON(v1alpha1_group_version_resource_t *v1alpha1_group_version_resource); + +#endif /* _v1alpha1_group_version_resource_H_ */ + diff --git a/kubernetes/model/v1alpha1_ip_address_spec.c b/kubernetes/model/v1alpha1_ip_address_spec.c index fd47848..d4da839 100644 --- a/kubernetes/model/v1alpha1_ip_address_spec.c +++ b/kubernetes/model/v1alpha1_ip_address_spec.c @@ -34,7 +34,9 @@ cJSON *v1alpha1_ip_address_spec_convertToJSON(v1alpha1_ip_address_spec_t *v1alph cJSON *item = cJSON_CreateObject(); // v1alpha1_ip_address_spec->parent_ref - if(v1alpha1_ip_address_spec->parent_ref) { + if (!v1alpha1_ip_address_spec->parent_ref) { + goto fail; + } cJSON *parent_ref_local_JSON = v1alpha1_parent_reference_convertToJSON(v1alpha1_ip_address_spec->parent_ref); if(parent_ref_local_JSON == NULL) { goto fail; //model @@ -43,7 +45,6 @@ cJSON *v1alpha1_ip_address_spec_convertToJSON(v1alpha1_ip_address_spec_t *v1alph if(item->child == NULL) { goto fail; } - } return item; fail: @@ -62,13 +63,16 @@ v1alpha1_ip_address_spec_t *v1alpha1_ip_address_spec_parseFromJSON(cJSON *v1alph // v1alpha1_ip_address_spec->parent_ref cJSON *parent_ref = cJSON_GetObjectItemCaseSensitive(v1alpha1_ip_address_specJSON, "parentRef"); - if (parent_ref) { - parent_ref_local_nonprim = v1alpha1_parent_reference_parseFromJSON(parent_ref); //nonprimitive + if (!parent_ref) { + goto end; } + + parent_ref_local_nonprim = v1alpha1_parent_reference_parseFromJSON(parent_ref); //nonprimitive + v1alpha1_ip_address_spec_local_var = v1alpha1_ip_address_spec_create ( - parent_ref ? parent_ref_local_nonprim : NULL + parent_ref_local_nonprim ); return v1alpha1_ip_address_spec_local_var; diff --git a/kubernetes/model/v1alpha1_migration_condition.c b/kubernetes/model/v1alpha1_migration_condition.c new file mode 100644 index 0000000..00f7279 --- /dev/null +++ b/kubernetes/model/v1alpha1_migration_condition.c @@ -0,0 +1,177 @@ +#include +#include +#include +#include "v1alpha1_migration_condition.h" + + + +v1alpha1_migration_condition_t *v1alpha1_migration_condition_create( + char *last_update_time, + char *message, + char *reason, + char *status, + char *type + ) { + v1alpha1_migration_condition_t *v1alpha1_migration_condition_local_var = malloc(sizeof(v1alpha1_migration_condition_t)); + if (!v1alpha1_migration_condition_local_var) { + return NULL; + } + v1alpha1_migration_condition_local_var->last_update_time = last_update_time; + v1alpha1_migration_condition_local_var->message = message; + v1alpha1_migration_condition_local_var->reason = reason; + v1alpha1_migration_condition_local_var->status = status; + v1alpha1_migration_condition_local_var->type = type; + + return v1alpha1_migration_condition_local_var; +} + + +void v1alpha1_migration_condition_free(v1alpha1_migration_condition_t *v1alpha1_migration_condition) { + if(NULL == v1alpha1_migration_condition){ + return ; + } + listEntry_t *listEntry; + if (v1alpha1_migration_condition->last_update_time) { + free(v1alpha1_migration_condition->last_update_time); + v1alpha1_migration_condition->last_update_time = NULL; + } + if (v1alpha1_migration_condition->message) { + free(v1alpha1_migration_condition->message); + v1alpha1_migration_condition->message = NULL; + } + if (v1alpha1_migration_condition->reason) { + free(v1alpha1_migration_condition->reason); + v1alpha1_migration_condition->reason = NULL; + } + if (v1alpha1_migration_condition->status) { + free(v1alpha1_migration_condition->status); + v1alpha1_migration_condition->status = NULL; + } + if (v1alpha1_migration_condition->type) { + free(v1alpha1_migration_condition->type); + v1alpha1_migration_condition->type = NULL; + } + free(v1alpha1_migration_condition); +} + +cJSON *v1alpha1_migration_condition_convertToJSON(v1alpha1_migration_condition_t *v1alpha1_migration_condition) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha1_migration_condition->last_update_time + if(v1alpha1_migration_condition->last_update_time) { + if(cJSON_AddStringToObject(item, "lastUpdateTime", v1alpha1_migration_condition->last_update_time) == NULL) { + goto fail; //Date-Time + } + } + + + // v1alpha1_migration_condition->message + if(v1alpha1_migration_condition->message) { + if(cJSON_AddStringToObject(item, "message", v1alpha1_migration_condition->message) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_migration_condition->reason + if(v1alpha1_migration_condition->reason) { + if(cJSON_AddStringToObject(item, "reason", v1alpha1_migration_condition->reason) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_migration_condition->status + if (!v1alpha1_migration_condition->status) { + goto fail; + } + if(cJSON_AddStringToObject(item, "status", v1alpha1_migration_condition->status) == NULL) { + goto fail; //String + } + + + // v1alpha1_migration_condition->type + if (!v1alpha1_migration_condition->type) { + goto fail; + } + if(cJSON_AddStringToObject(item, "type", v1alpha1_migration_condition->type) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha1_migration_condition_t *v1alpha1_migration_condition_parseFromJSON(cJSON *v1alpha1_migration_conditionJSON){ + + v1alpha1_migration_condition_t *v1alpha1_migration_condition_local_var = NULL; + + // v1alpha1_migration_condition->last_update_time + cJSON *last_update_time = cJSON_GetObjectItemCaseSensitive(v1alpha1_migration_conditionJSON, "lastUpdateTime"); + if (last_update_time) { + if(!cJSON_IsString(last_update_time) && !cJSON_IsNull(last_update_time)) + { + goto end; //DateTime + } + } + + // v1alpha1_migration_condition->message + cJSON *message = cJSON_GetObjectItemCaseSensitive(v1alpha1_migration_conditionJSON, "message"); + if (message) { + if(!cJSON_IsString(message) && !cJSON_IsNull(message)) + { + goto end; //String + } + } + + // v1alpha1_migration_condition->reason + cJSON *reason = cJSON_GetObjectItemCaseSensitive(v1alpha1_migration_conditionJSON, "reason"); + if (reason) { + if(!cJSON_IsString(reason) && !cJSON_IsNull(reason)) + { + goto end; //String + } + } + + // v1alpha1_migration_condition->status + cJSON *status = cJSON_GetObjectItemCaseSensitive(v1alpha1_migration_conditionJSON, "status"); + if (!status) { + goto end; + } + + + if(!cJSON_IsString(status)) + { + goto end; //String + } + + // v1alpha1_migration_condition->type + cJSON *type = cJSON_GetObjectItemCaseSensitive(v1alpha1_migration_conditionJSON, "type"); + if (!type) { + goto end; + } + + + if(!cJSON_IsString(type)) + { + goto end; //String + } + + + v1alpha1_migration_condition_local_var = v1alpha1_migration_condition_create ( + last_update_time && !cJSON_IsNull(last_update_time) ? strdup(last_update_time->valuestring) : NULL, + message && !cJSON_IsNull(message) ? strdup(message->valuestring) : NULL, + reason && !cJSON_IsNull(reason) ? strdup(reason->valuestring) : NULL, + strdup(status->valuestring), + strdup(type->valuestring) + ); + + return v1alpha1_migration_condition_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1alpha1_migration_condition.h b/kubernetes/model/v1alpha1_migration_condition.h new file mode 100644 index 0000000..f4b1008 --- /dev/null +++ b/kubernetes/model/v1alpha1_migration_condition.h @@ -0,0 +1,45 @@ +/* + * v1alpha1_migration_condition.h + * + * Describes the state of a migration at a certain point. + */ + +#ifndef _v1alpha1_migration_condition_H_ +#define _v1alpha1_migration_condition_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha1_migration_condition_t v1alpha1_migration_condition_t; + + + + +typedef struct v1alpha1_migration_condition_t { + char *last_update_time; //date time + char *message; // string + char *reason; // string + char *status; // string + char *type; // string + +} v1alpha1_migration_condition_t; + +v1alpha1_migration_condition_t *v1alpha1_migration_condition_create( + char *last_update_time, + char *message, + char *reason, + char *status, + char *type +); + +void v1alpha1_migration_condition_free(v1alpha1_migration_condition_t *v1alpha1_migration_condition); + +v1alpha1_migration_condition_t *v1alpha1_migration_condition_parseFromJSON(cJSON *v1alpha1_migration_conditionJSON); + +cJSON *v1alpha1_migration_condition_convertToJSON(v1alpha1_migration_condition_t *v1alpha1_migration_condition); + +#endif /* _v1alpha1_migration_condition_H_ */ + diff --git a/kubernetes/model/v1alpha1_parent_reference.c b/kubernetes/model/v1alpha1_parent_reference.c index 4c6eb86..adb6b62 100644 --- a/kubernetes/model/v1alpha1_parent_reference.c +++ b/kubernetes/model/v1alpha1_parent_reference.c @@ -60,11 +60,12 @@ cJSON *v1alpha1_parent_reference_convertToJSON(v1alpha1_parent_reference_t *v1al // v1alpha1_parent_reference->name - if(v1alpha1_parent_reference->name) { + if (!v1alpha1_parent_reference->name) { + goto fail; + } if(cJSON_AddStringToObject(item, "name", v1alpha1_parent_reference->name) == NULL) { goto fail; //String } - } // v1alpha1_parent_reference->_namespace @@ -76,11 +77,12 @@ cJSON *v1alpha1_parent_reference_convertToJSON(v1alpha1_parent_reference_t *v1al // v1alpha1_parent_reference->resource - if(v1alpha1_parent_reference->resource) { + if (!v1alpha1_parent_reference->resource) { + goto fail; + } if(cJSON_AddStringToObject(item, "resource", v1alpha1_parent_reference->resource) == NULL) { goto fail; //String } - } return item; fail: @@ -105,12 +107,15 @@ v1alpha1_parent_reference_t *v1alpha1_parent_reference_parseFromJSON(cJSON *v1al // v1alpha1_parent_reference->name cJSON *name = cJSON_GetObjectItemCaseSensitive(v1alpha1_parent_referenceJSON, "name"); - if (name) { - if(!cJSON_IsString(name) && !cJSON_IsNull(name)) + if (!name) { + goto end; + } + + + if(!cJSON_IsString(name)) { goto end; //String } - } // v1alpha1_parent_reference->_namespace cJSON *_namespace = cJSON_GetObjectItemCaseSensitive(v1alpha1_parent_referenceJSON, "namespace"); @@ -123,19 +128,22 @@ v1alpha1_parent_reference_t *v1alpha1_parent_reference_parseFromJSON(cJSON *v1al // v1alpha1_parent_reference->resource cJSON *resource = cJSON_GetObjectItemCaseSensitive(v1alpha1_parent_referenceJSON, "resource"); - if (resource) { - if(!cJSON_IsString(resource) && !cJSON_IsNull(resource)) + if (!resource) { + goto end; + } + + + if(!cJSON_IsString(resource)) { goto end; //String } - } v1alpha1_parent_reference_local_var = v1alpha1_parent_reference_create ( group && !cJSON_IsNull(group) ? strdup(group->valuestring) : NULL, - name && !cJSON_IsNull(name) ? strdup(name->valuestring) : NULL, + strdup(name->valuestring), _namespace && !cJSON_IsNull(_namespace) ? strdup(_namespace->valuestring) : NULL, - resource && !cJSON_IsNull(resource) ? strdup(resource->valuestring) : NULL + strdup(resource->valuestring) ); return v1alpha1_parent_reference_local_var; diff --git a/kubernetes/model/v1alpha1_storage_version_condition.c b/kubernetes/model/v1alpha1_storage_version_condition.c index 4193ec3..4ab62d5 100644 --- a/kubernetes/model/v1alpha1_storage_version_condition.c +++ b/kubernetes/model/v1alpha1_storage_version_condition.c @@ -68,11 +68,12 @@ cJSON *v1alpha1_storage_version_condition_convertToJSON(v1alpha1_storage_version // v1alpha1_storage_version_condition->message - if(v1alpha1_storage_version_condition->message) { + if (!v1alpha1_storage_version_condition->message) { + goto fail; + } if(cJSON_AddStringToObject(item, "message", v1alpha1_storage_version_condition->message) == NULL) { goto fail; //String } - } // v1alpha1_storage_version_condition->observed_generation @@ -132,12 +133,15 @@ v1alpha1_storage_version_condition_t *v1alpha1_storage_version_condition_parseFr // v1alpha1_storage_version_condition->message cJSON *message = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_conditionJSON, "message"); - if (message) { - if(!cJSON_IsString(message) && !cJSON_IsNull(message)) + if (!message) { + goto end; + } + + + if(!cJSON_IsString(message)) { goto end; //String } - } // v1alpha1_storage_version_condition->observed_generation cJSON *observed_generation = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_conditionJSON, "observedGeneration"); @@ -187,7 +191,7 @@ v1alpha1_storage_version_condition_t *v1alpha1_storage_version_condition_parseFr v1alpha1_storage_version_condition_local_var = v1alpha1_storage_version_condition_create ( last_transition_time && !cJSON_IsNull(last_transition_time) ? strdup(last_transition_time->valuestring) : NULL, - message && !cJSON_IsNull(message) ? strdup(message->valuestring) : NULL, + strdup(message->valuestring), observed_generation ? observed_generation->valuedouble : 0, strdup(reason->valuestring), strdup(status->valuestring), diff --git a/kubernetes/model/v1alpha1_storage_version_migration.c b/kubernetes/model/v1alpha1_storage_version_migration.c new file mode 100644 index 0000000..77102c8 --- /dev/null +++ b/kubernetes/model/v1alpha1_storage_version_migration.c @@ -0,0 +1,196 @@ +#include +#include +#include +#include "v1alpha1_storage_version_migration.h" + + + +v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration_create( + char *api_version, + char *kind, + v1_object_meta_t *metadata, + v1alpha1_storage_version_migration_spec_t *spec, + v1alpha1_storage_version_migration_status_t *status + ) { + v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration_local_var = malloc(sizeof(v1alpha1_storage_version_migration_t)); + if (!v1alpha1_storage_version_migration_local_var) { + return NULL; + } + v1alpha1_storage_version_migration_local_var->api_version = api_version; + v1alpha1_storage_version_migration_local_var->kind = kind; + v1alpha1_storage_version_migration_local_var->metadata = metadata; + v1alpha1_storage_version_migration_local_var->spec = spec; + v1alpha1_storage_version_migration_local_var->status = status; + + return v1alpha1_storage_version_migration_local_var; +} + + +void v1alpha1_storage_version_migration_free(v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration) { + if(NULL == v1alpha1_storage_version_migration){ + return ; + } + listEntry_t *listEntry; + if (v1alpha1_storage_version_migration->api_version) { + free(v1alpha1_storage_version_migration->api_version); + v1alpha1_storage_version_migration->api_version = NULL; + } + if (v1alpha1_storage_version_migration->kind) { + free(v1alpha1_storage_version_migration->kind); + v1alpha1_storage_version_migration->kind = NULL; + } + if (v1alpha1_storage_version_migration->metadata) { + v1_object_meta_free(v1alpha1_storage_version_migration->metadata); + v1alpha1_storage_version_migration->metadata = NULL; + } + if (v1alpha1_storage_version_migration->spec) { + v1alpha1_storage_version_migration_spec_free(v1alpha1_storage_version_migration->spec); + v1alpha1_storage_version_migration->spec = NULL; + } + if (v1alpha1_storage_version_migration->status) { + v1alpha1_storage_version_migration_status_free(v1alpha1_storage_version_migration->status); + v1alpha1_storage_version_migration->status = NULL; + } + free(v1alpha1_storage_version_migration); +} + +cJSON *v1alpha1_storage_version_migration_convertToJSON(v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha1_storage_version_migration->api_version + if(v1alpha1_storage_version_migration->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1alpha1_storage_version_migration->api_version) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_storage_version_migration->kind + if(v1alpha1_storage_version_migration->kind) { + if(cJSON_AddStringToObject(item, "kind", v1alpha1_storage_version_migration->kind) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_storage_version_migration->metadata + if(v1alpha1_storage_version_migration->metadata) { + cJSON *metadata_local_JSON = v1_object_meta_convertToJSON(v1alpha1_storage_version_migration->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha1_storage_version_migration->spec + if(v1alpha1_storage_version_migration->spec) { + cJSON *spec_local_JSON = v1alpha1_storage_version_migration_spec_convertToJSON(v1alpha1_storage_version_migration->spec); + if(spec_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "spec", spec_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha1_storage_version_migration->status + if(v1alpha1_storage_version_migration->status) { + cJSON *status_local_JSON = v1alpha1_storage_version_migration_status_convertToJSON(v1alpha1_storage_version_migration->status); + if(status_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "status", status_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration_parseFromJSON(cJSON *v1alpha1_storage_version_migrationJSON){ + + v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration_local_var = NULL; + + // define the local variable for v1alpha1_storage_version_migration->metadata + v1_object_meta_t *metadata_local_nonprim = NULL; + + // define the local variable for v1alpha1_storage_version_migration->spec + v1alpha1_storage_version_migration_spec_t *spec_local_nonprim = NULL; + + // define the local variable for v1alpha1_storage_version_migration->status + v1alpha1_storage_version_migration_status_t *status_local_nonprim = NULL; + + // v1alpha1_storage_version_migration->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migrationJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1alpha1_storage_version_migration->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migrationJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1alpha1_storage_version_migration->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migrationJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_object_meta_parseFromJSON(metadata); //nonprimitive + } + + // v1alpha1_storage_version_migration->spec + cJSON *spec = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migrationJSON, "spec"); + if (spec) { + spec_local_nonprim = v1alpha1_storage_version_migration_spec_parseFromJSON(spec); //nonprimitive + } + + // v1alpha1_storage_version_migration->status + cJSON *status = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migrationJSON, "status"); + if (status) { + status_local_nonprim = v1alpha1_storage_version_migration_status_parseFromJSON(status); //nonprimitive + } + + + v1alpha1_storage_version_migration_local_var = v1alpha1_storage_version_migration_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL, + spec ? spec_local_nonprim : NULL, + status ? status_local_nonprim : NULL + ); + + return v1alpha1_storage_version_migration_local_var; +end: + if (metadata_local_nonprim) { + v1_object_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + if (spec_local_nonprim) { + v1alpha1_storage_version_migration_spec_free(spec_local_nonprim); + spec_local_nonprim = NULL; + } + if (status_local_nonprim) { + v1alpha1_storage_version_migration_status_free(status_local_nonprim); + status_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha1_storage_version_migration.h b/kubernetes/model/v1alpha1_storage_version_migration.h new file mode 100644 index 0000000..75950d0 --- /dev/null +++ b/kubernetes/model/v1alpha1_storage_version_migration.h @@ -0,0 +1,48 @@ +/* + * v1alpha1_storage_version_migration.h + * + * StorageVersionMigration represents a migration of stored data to the latest storage version. + */ + +#ifndef _v1alpha1_storage_version_migration_H_ +#define _v1alpha1_storage_version_migration_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha1_storage_version_migration_t v1alpha1_storage_version_migration_t; + +#include "v1_object_meta.h" +#include "v1alpha1_storage_version_migration_spec.h" +#include "v1alpha1_storage_version_migration_status.h" + + + +typedef struct v1alpha1_storage_version_migration_t { + char *api_version; // string + char *kind; // string + struct v1_object_meta_t *metadata; //model + struct v1alpha1_storage_version_migration_spec_t *spec; //model + struct v1alpha1_storage_version_migration_status_t *status; //model + +} v1alpha1_storage_version_migration_t; + +v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration_create( + char *api_version, + char *kind, + v1_object_meta_t *metadata, + v1alpha1_storage_version_migration_spec_t *spec, + v1alpha1_storage_version_migration_status_t *status +); + +void v1alpha1_storage_version_migration_free(v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration); + +v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration_parseFromJSON(cJSON *v1alpha1_storage_version_migrationJSON); + +cJSON *v1alpha1_storage_version_migration_convertToJSON(v1alpha1_storage_version_migration_t *v1alpha1_storage_version_migration); + +#endif /* _v1alpha1_storage_version_migration_H_ */ + diff --git a/kubernetes/model/v1alpha1_storage_version_migration_list.c b/kubernetes/model/v1alpha1_storage_version_migration_list.c new file mode 100644 index 0000000..fa758df --- /dev/null +++ b/kubernetes/model/v1alpha1_storage_version_migration_list.c @@ -0,0 +1,197 @@ +#include +#include +#include +#include "v1alpha1_storage_version_migration_list.h" + + + +v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata + ) { + v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list_local_var = malloc(sizeof(v1alpha1_storage_version_migration_list_t)); + if (!v1alpha1_storage_version_migration_list_local_var) { + return NULL; + } + v1alpha1_storage_version_migration_list_local_var->api_version = api_version; + v1alpha1_storage_version_migration_list_local_var->items = items; + v1alpha1_storage_version_migration_list_local_var->kind = kind; + v1alpha1_storage_version_migration_list_local_var->metadata = metadata; + + return v1alpha1_storage_version_migration_list_local_var; +} + + +void v1alpha1_storage_version_migration_list_free(v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list) { + if(NULL == v1alpha1_storage_version_migration_list){ + return ; + } + listEntry_t *listEntry; + if (v1alpha1_storage_version_migration_list->api_version) { + free(v1alpha1_storage_version_migration_list->api_version); + v1alpha1_storage_version_migration_list->api_version = NULL; + } + if (v1alpha1_storage_version_migration_list->items) { + list_ForEach(listEntry, v1alpha1_storage_version_migration_list->items) { + v1alpha1_storage_version_migration_free(listEntry->data); + } + list_freeList(v1alpha1_storage_version_migration_list->items); + v1alpha1_storage_version_migration_list->items = NULL; + } + if (v1alpha1_storage_version_migration_list->kind) { + free(v1alpha1_storage_version_migration_list->kind); + v1alpha1_storage_version_migration_list->kind = NULL; + } + if (v1alpha1_storage_version_migration_list->metadata) { + v1_list_meta_free(v1alpha1_storage_version_migration_list->metadata); + v1alpha1_storage_version_migration_list->metadata = NULL; + } + free(v1alpha1_storage_version_migration_list); +} + +cJSON *v1alpha1_storage_version_migration_list_convertToJSON(v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha1_storage_version_migration_list->api_version + if(v1alpha1_storage_version_migration_list->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1alpha1_storage_version_migration_list->api_version) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_storage_version_migration_list->items + if (!v1alpha1_storage_version_migration_list->items) { + goto fail; + } + cJSON *items = cJSON_AddArrayToObject(item, "items"); + if(items == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *itemsListEntry; + if (v1alpha1_storage_version_migration_list->items) { + list_ForEach(itemsListEntry, v1alpha1_storage_version_migration_list->items) { + cJSON *itemLocal = v1alpha1_storage_version_migration_convertToJSON(itemsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(items, itemLocal); + } + } + + + // v1alpha1_storage_version_migration_list->kind + if(v1alpha1_storage_version_migration_list->kind) { + if(cJSON_AddStringToObject(item, "kind", v1alpha1_storage_version_migration_list->kind) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_storage_version_migration_list->metadata + if(v1alpha1_storage_version_migration_list->metadata) { + cJSON *metadata_local_JSON = v1_list_meta_convertToJSON(v1alpha1_storage_version_migration_list->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list_parseFromJSON(cJSON *v1alpha1_storage_version_migration_listJSON){ + + v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list_local_var = NULL; + + // define the local list for v1alpha1_storage_version_migration_list->items + list_t *itemsList = NULL; + + // define the local variable for v1alpha1_storage_version_migration_list->metadata + v1_list_meta_t *metadata_local_nonprim = NULL; + + // v1alpha1_storage_version_migration_list->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migration_listJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1alpha1_storage_version_migration_list->items + cJSON *items = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migration_listJSON, "items"); + if (!items) { + goto end; + } + + + cJSON *items_local_nonprimitive = NULL; + if(!cJSON_IsArray(items)){ + goto end; //nonprimitive container + } + + itemsList = list_createList(); + + cJSON_ArrayForEach(items_local_nonprimitive,items ) + { + if(!cJSON_IsObject(items_local_nonprimitive)){ + goto end; + } + v1alpha1_storage_version_migration_t *itemsItem = v1alpha1_storage_version_migration_parseFromJSON(items_local_nonprimitive); + + list_addElement(itemsList, itemsItem); + } + + // v1alpha1_storage_version_migration_list->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migration_listJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1alpha1_storage_version_migration_list->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migration_listJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_list_meta_parseFromJSON(metadata); //nonprimitive + } + + + v1alpha1_storage_version_migration_list_local_var = v1alpha1_storage_version_migration_list_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + itemsList, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL + ); + + return v1alpha1_storage_version_migration_list_local_var; +end: + if (itemsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, itemsList) { + v1alpha1_storage_version_migration_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(itemsList); + itemsList = NULL; + } + if (metadata_local_nonprim) { + v1_list_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha1_storage_version_migration_list.h b/kubernetes/model/v1alpha1_storage_version_migration_list.h new file mode 100644 index 0000000..ff93ecd --- /dev/null +++ b/kubernetes/model/v1alpha1_storage_version_migration_list.h @@ -0,0 +1,45 @@ +/* + * v1alpha1_storage_version_migration_list.h + * + * StorageVersionMigrationList is a collection of storage version migrations. + */ + +#ifndef _v1alpha1_storage_version_migration_list_H_ +#define _v1alpha1_storage_version_migration_list_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha1_storage_version_migration_list_t v1alpha1_storage_version_migration_list_t; + +#include "v1_list_meta.h" +#include "v1alpha1_storage_version_migration.h" + + + +typedef struct v1alpha1_storage_version_migration_list_t { + char *api_version; // string + list_t *items; //nonprimitive container + char *kind; // string + struct v1_list_meta_t *metadata; //model + +} v1alpha1_storage_version_migration_list_t; + +v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata +); + +void v1alpha1_storage_version_migration_list_free(v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list); + +v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list_parseFromJSON(cJSON *v1alpha1_storage_version_migration_listJSON); + +cJSON *v1alpha1_storage_version_migration_list_convertToJSON(v1alpha1_storage_version_migration_list_t *v1alpha1_storage_version_migration_list); + +#endif /* _v1alpha1_storage_version_migration_list_H_ */ + diff --git a/kubernetes/model/v1alpha1_storage_version_migration_spec.c b/kubernetes/model/v1alpha1_storage_version_migration_spec.c new file mode 100644 index 0000000..9a4bc09 --- /dev/null +++ b/kubernetes/model/v1alpha1_storage_version_migration_spec.c @@ -0,0 +1,110 @@ +#include +#include +#include +#include "v1alpha1_storage_version_migration_spec.h" + + + +v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec_create( + char *continue_token, + v1alpha1_group_version_resource_t *resource + ) { + v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec_local_var = malloc(sizeof(v1alpha1_storage_version_migration_spec_t)); + if (!v1alpha1_storage_version_migration_spec_local_var) { + return NULL; + } + v1alpha1_storage_version_migration_spec_local_var->continue_token = continue_token; + v1alpha1_storage_version_migration_spec_local_var->resource = resource; + + return v1alpha1_storage_version_migration_spec_local_var; +} + + +void v1alpha1_storage_version_migration_spec_free(v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec) { + if(NULL == v1alpha1_storage_version_migration_spec){ + return ; + } + listEntry_t *listEntry; + if (v1alpha1_storage_version_migration_spec->continue_token) { + free(v1alpha1_storage_version_migration_spec->continue_token); + v1alpha1_storage_version_migration_spec->continue_token = NULL; + } + if (v1alpha1_storage_version_migration_spec->resource) { + v1alpha1_group_version_resource_free(v1alpha1_storage_version_migration_spec->resource); + v1alpha1_storage_version_migration_spec->resource = NULL; + } + free(v1alpha1_storage_version_migration_spec); +} + +cJSON *v1alpha1_storage_version_migration_spec_convertToJSON(v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha1_storage_version_migration_spec->continue_token + if(v1alpha1_storage_version_migration_spec->continue_token) { + if(cJSON_AddStringToObject(item, "continueToken", v1alpha1_storage_version_migration_spec->continue_token) == NULL) { + goto fail; //String + } + } + + + // v1alpha1_storage_version_migration_spec->resource + if (!v1alpha1_storage_version_migration_spec->resource) { + goto fail; + } + cJSON *resource_local_JSON = v1alpha1_group_version_resource_convertToJSON(v1alpha1_storage_version_migration_spec->resource); + if(resource_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "resource", resource_local_JSON); + if(item->child == NULL) { + goto fail; + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec_parseFromJSON(cJSON *v1alpha1_storage_version_migration_specJSON){ + + v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec_local_var = NULL; + + // define the local variable for v1alpha1_storage_version_migration_spec->resource + v1alpha1_group_version_resource_t *resource_local_nonprim = NULL; + + // v1alpha1_storage_version_migration_spec->continue_token + cJSON *continue_token = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migration_specJSON, "continueToken"); + if (continue_token) { + if(!cJSON_IsString(continue_token) && !cJSON_IsNull(continue_token)) + { + goto end; //String + } + } + + // v1alpha1_storage_version_migration_spec->resource + cJSON *resource = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migration_specJSON, "resource"); + if (!resource) { + goto end; + } + + + resource_local_nonprim = v1alpha1_group_version_resource_parseFromJSON(resource); //nonprimitive + + + v1alpha1_storage_version_migration_spec_local_var = v1alpha1_storage_version_migration_spec_create ( + continue_token && !cJSON_IsNull(continue_token) ? strdup(continue_token->valuestring) : NULL, + resource_local_nonprim + ); + + return v1alpha1_storage_version_migration_spec_local_var; +end: + if (resource_local_nonprim) { + v1alpha1_group_version_resource_free(resource_local_nonprim); + resource_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha1_storage_version_migration_spec.h b/kubernetes/model/v1alpha1_storage_version_migration_spec.h new file mode 100644 index 0000000..72058b6 --- /dev/null +++ b/kubernetes/model/v1alpha1_storage_version_migration_spec.h @@ -0,0 +1,40 @@ +/* + * v1alpha1_storage_version_migration_spec.h + * + * Spec of the storage version migration. + */ + +#ifndef _v1alpha1_storage_version_migration_spec_H_ +#define _v1alpha1_storage_version_migration_spec_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha1_storage_version_migration_spec_t v1alpha1_storage_version_migration_spec_t; + +#include "v1alpha1_group_version_resource.h" + + + +typedef struct v1alpha1_storage_version_migration_spec_t { + char *continue_token; // string + struct v1alpha1_group_version_resource_t *resource; //model + +} v1alpha1_storage_version_migration_spec_t; + +v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec_create( + char *continue_token, + v1alpha1_group_version_resource_t *resource +); + +void v1alpha1_storage_version_migration_spec_free(v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec); + +v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec_parseFromJSON(cJSON *v1alpha1_storage_version_migration_specJSON); + +cJSON *v1alpha1_storage_version_migration_spec_convertToJSON(v1alpha1_storage_version_migration_spec_t *v1alpha1_storage_version_migration_spec); + +#endif /* _v1alpha1_storage_version_migration_spec_H_ */ + diff --git a/kubernetes/model/v1alpha1_storage_version_migration_status.c b/kubernetes/model/v1alpha1_storage_version_migration_status.c new file mode 100644 index 0000000..63eaaff --- /dev/null +++ b/kubernetes/model/v1alpha1_storage_version_migration_status.c @@ -0,0 +1,136 @@ +#include +#include +#include +#include "v1alpha1_storage_version_migration_status.h" + + + +v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status_create( + list_t *conditions, + char *resource_version + ) { + v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status_local_var = malloc(sizeof(v1alpha1_storage_version_migration_status_t)); + if (!v1alpha1_storage_version_migration_status_local_var) { + return NULL; + } + v1alpha1_storage_version_migration_status_local_var->conditions = conditions; + v1alpha1_storage_version_migration_status_local_var->resource_version = resource_version; + + return v1alpha1_storage_version_migration_status_local_var; +} + + +void v1alpha1_storage_version_migration_status_free(v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status) { + if(NULL == v1alpha1_storage_version_migration_status){ + return ; + } + listEntry_t *listEntry; + if (v1alpha1_storage_version_migration_status->conditions) { + list_ForEach(listEntry, v1alpha1_storage_version_migration_status->conditions) { + v1alpha1_migration_condition_free(listEntry->data); + } + list_freeList(v1alpha1_storage_version_migration_status->conditions); + v1alpha1_storage_version_migration_status->conditions = NULL; + } + if (v1alpha1_storage_version_migration_status->resource_version) { + free(v1alpha1_storage_version_migration_status->resource_version); + v1alpha1_storage_version_migration_status->resource_version = NULL; + } + free(v1alpha1_storage_version_migration_status); +} + +cJSON *v1alpha1_storage_version_migration_status_convertToJSON(v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha1_storage_version_migration_status->conditions + if(v1alpha1_storage_version_migration_status->conditions) { + cJSON *conditions = cJSON_AddArrayToObject(item, "conditions"); + if(conditions == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *conditionsListEntry; + if (v1alpha1_storage_version_migration_status->conditions) { + list_ForEach(conditionsListEntry, v1alpha1_storage_version_migration_status->conditions) { + cJSON *itemLocal = v1alpha1_migration_condition_convertToJSON(conditionsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(conditions, itemLocal); + } + } + } + + + // v1alpha1_storage_version_migration_status->resource_version + if(v1alpha1_storage_version_migration_status->resource_version) { + if(cJSON_AddStringToObject(item, "resourceVersion", v1alpha1_storage_version_migration_status->resource_version) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status_parseFromJSON(cJSON *v1alpha1_storage_version_migration_statusJSON){ + + v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status_local_var = NULL; + + // define the local list for v1alpha1_storage_version_migration_status->conditions + list_t *conditionsList = NULL; + + // v1alpha1_storage_version_migration_status->conditions + cJSON *conditions = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migration_statusJSON, "conditions"); + if (conditions) { + cJSON *conditions_local_nonprimitive = NULL; + if(!cJSON_IsArray(conditions)){ + goto end; //nonprimitive container + } + + conditionsList = list_createList(); + + cJSON_ArrayForEach(conditions_local_nonprimitive,conditions ) + { + if(!cJSON_IsObject(conditions_local_nonprimitive)){ + goto end; + } + v1alpha1_migration_condition_t *conditionsItem = v1alpha1_migration_condition_parseFromJSON(conditions_local_nonprimitive); + + list_addElement(conditionsList, conditionsItem); + } + } + + // v1alpha1_storage_version_migration_status->resource_version + cJSON *resource_version = cJSON_GetObjectItemCaseSensitive(v1alpha1_storage_version_migration_statusJSON, "resourceVersion"); + if (resource_version) { + if(!cJSON_IsString(resource_version) && !cJSON_IsNull(resource_version)) + { + goto end; //String + } + } + + + v1alpha1_storage_version_migration_status_local_var = v1alpha1_storage_version_migration_status_create ( + conditions ? conditionsList : NULL, + resource_version && !cJSON_IsNull(resource_version) ? strdup(resource_version->valuestring) : NULL + ); + + return v1alpha1_storage_version_migration_status_local_var; +end: + if (conditionsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, conditionsList) { + v1alpha1_migration_condition_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(conditionsList); + conditionsList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha1_storage_version_migration_status.h b/kubernetes/model/v1alpha1_storage_version_migration_status.h new file mode 100644 index 0000000..d652770 --- /dev/null +++ b/kubernetes/model/v1alpha1_storage_version_migration_status.h @@ -0,0 +1,40 @@ +/* + * v1alpha1_storage_version_migration_status.h + * + * Status of the storage version migration. + */ + +#ifndef _v1alpha1_storage_version_migration_status_H_ +#define _v1alpha1_storage_version_migration_status_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha1_storage_version_migration_status_t v1alpha1_storage_version_migration_status_t; + +#include "v1alpha1_migration_condition.h" + + + +typedef struct v1alpha1_storage_version_migration_status_t { + list_t *conditions; //nonprimitive container + char *resource_version; // string + +} v1alpha1_storage_version_migration_status_t; + +v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status_create( + list_t *conditions, + char *resource_version +); + +void v1alpha1_storage_version_migration_status_free(v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status); + +v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status_parseFromJSON(cJSON *v1alpha1_storage_version_migration_statusJSON); + +cJSON *v1alpha1_storage_version_migration_status_convertToJSON(v1alpha1_storage_version_migration_status_t *v1alpha1_storage_version_migration_status); + +#endif /* _v1alpha1_storage_version_migration_status_H_ */ + diff --git a/kubernetes/model/v1alpha2_driver_allocation_result.c b/kubernetes/model/v1alpha2_driver_allocation_result.c new file mode 100644 index 0000000..a6a8471 --- /dev/null +++ b/kubernetes/model/v1alpha2_driver_allocation_result.c @@ -0,0 +1,109 @@ +#include +#include +#include +#include "v1alpha2_driver_allocation_result.h" + + + +v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result_create( + v1alpha2_named_resources_allocation_result_t *named_resources, + object_t *vendor_request_parameters + ) { + v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result_local_var = malloc(sizeof(v1alpha2_driver_allocation_result_t)); + if (!v1alpha2_driver_allocation_result_local_var) { + return NULL; + } + v1alpha2_driver_allocation_result_local_var->named_resources = named_resources; + v1alpha2_driver_allocation_result_local_var->vendor_request_parameters = vendor_request_parameters; + + return v1alpha2_driver_allocation_result_local_var; +} + + +void v1alpha2_driver_allocation_result_free(v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result) { + if(NULL == v1alpha2_driver_allocation_result){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_driver_allocation_result->named_resources) { + v1alpha2_named_resources_allocation_result_free(v1alpha2_driver_allocation_result->named_resources); + v1alpha2_driver_allocation_result->named_resources = NULL; + } + if (v1alpha2_driver_allocation_result->vendor_request_parameters) { + object_free(v1alpha2_driver_allocation_result->vendor_request_parameters); + v1alpha2_driver_allocation_result->vendor_request_parameters = NULL; + } + free(v1alpha2_driver_allocation_result); +} + +cJSON *v1alpha2_driver_allocation_result_convertToJSON(v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_driver_allocation_result->named_resources + if(v1alpha2_driver_allocation_result->named_resources) { + cJSON *named_resources_local_JSON = v1alpha2_named_resources_allocation_result_convertToJSON(v1alpha2_driver_allocation_result->named_resources); + if(named_resources_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "namedResources", named_resources_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_driver_allocation_result->vendor_request_parameters + if(v1alpha2_driver_allocation_result->vendor_request_parameters) { + cJSON *vendor_request_parameters_object = object_convertToJSON(v1alpha2_driver_allocation_result->vendor_request_parameters); + if(vendor_request_parameters_object == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "vendorRequestParameters", vendor_request_parameters_object); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result_parseFromJSON(cJSON *v1alpha2_driver_allocation_resultJSON){ + + v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result_local_var = NULL; + + // define the local variable for v1alpha2_driver_allocation_result->named_resources + v1alpha2_named_resources_allocation_result_t *named_resources_local_nonprim = NULL; + + // v1alpha2_driver_allocation_result->named_resources + cJSON *named_resources = cJSON_GetObjectItemCaseSensitive(v1alpha2_driver_allocation_resultJSON, "namedResources"); + if (named_resources) { + named_resources_local_nonprim = v1alpha2_named_resources_allocation_result_parseFromJSON(named_resources); //nonprimitive + } + + // v1alpha2_driver_allocation_result->vendor_request_parameters + cJSON *vendor_request_parameters = cJSON_GetObjectItemCaseSensitive(v1alpha2_driver_allocation_resultJSON, "vendorRequestParameters"); + object_t *vendor_request_parameters_local_object = NULL; + if (vendor_request_parameters) { + vendor_request_parameters_local_object = object_parseFromJSON(vendor_request_parameters); //object + } + + + v1alpha2_driver_allocation_result_local_var = v1alpha2_driver_allocation_result_create ( + named_resources ? named_resources_local_nonprim : NULL, + vendor_request_parameters ? vendor_request_parameters_local_object : NULL + ); + + return v1alpha2_driver_allocation_result_local_var; +end: + if (named_resources_local_nonprim) { + v1alpha2_named_resources_allocation_result_free(named_resources_local_nonprim); + named_resources_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_driver_allocation_result.h b/kubernetes/model/v1alpha2_driver_allocation_result.h new file mode 100644 index 0000000..8b186e5 --- /dev/null +++ b/kubernetes/model/v1alpha2_driver_allocation_result.h @@ -0,0 +1,41 @@ +/* + * v1alpha2_driver_allocation_result.h + * + * DriverAllocationResult contains vendor parameters and the allocation result for one request. + */ + +#ifndef _v1alpha2_driver_allocation_result_H_ +#define _v1alpha2_driver_allocation_result_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_driver_allocation_result_t v1alpha2_driver_allocation_result_t; + +#include "object.h" +#include "v1alpha2_named_resources_allocation_result.h" + + + +typedef struct v1alpha2_driver_allocation_result_t { + struct v1alpha2_named_resources_allocation_result_t *named_resources; //model + object_t *vendor_request_parameters; //object + +} v1alpha2_driver_allocation_result_t; + +v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result_create( + v1alpha2_named_resources_allocation_result_t *named_resources, + object_t *vendor_request_parameters +); + +void v1alpha2_driver_allocation_result_free(v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result); + +v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result_parseFromJSON(cJSON *v1alpha2_driver_allocation_resultJSON); + +cJSON *v1alpha2_driver_allocation_result_convertToJSON(v1alpha2_driver_allocation_result_t *v1alpha2_driver_allocation_result); + +#endif /* _v1alpha2_driver_allocation_result_H_ */ + diff --git a/kubernetes/model/v1alpha2_driver_requests.c b/kubernetes/model/v1alpha2_driver_requests.c new file mode 100644 index 0000000..5c27d27 --- /dev/null +++ b/kubernetes/model/v1alpha2_driver_requests.c @@ -0,0 +1,163 @@ +#include +#include +#include +#include "v1alpha2_driver_requests.h" + + + +v1alpha2_driver_requests_t *v1alpha2_driver_requests_create( + char *driver_name, + list_t *requests, + object_t *vendor_parameters + ) { + v1alpha2_driver_requests_t *v1alpha2_driver_requests_local_var = malloc(sizeof(v1alpha2_driver_requests_t)); + if (!v1alpha2_driver_requests_local_var) { + return NULL; + } + v1alpha2_driver_requests_local_var->driver_name = driver_name; + v1alpha2_driver_requests_local_var->requests = requests; + v1alpha2_driver_requests_local_var->vendor_parameters = vendor_parameters; + + return v1alpha2_driver_requests_local_var; +} + + +void v1alpha2_driver_requests_free(v1alpha2_driver_requests_t *v1alpha2_driver_requests) { + if(NULL == v1alpha2_driver_requests){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_driver_requests->driver_name) { + free(v1alpha2_driver_requests->driver_name); + v1alpha2_driver_requests->driver_name = NULL; + } + if (v1alpha2_driver_requests->requests) { + list_ForEach(listEntry, v1alpha2_driver_requests->requests) { + v1alpha2_resource_request_free(listEntry->data); + } + list_freeList(v1alpha2_driver_requests->requests); + v1alpha2_driver_requests->requests = NULL; + } + if (v1alpha2_driver_requests->vendor_parameters) { + object_free(v1alpha2_driver_requests->vendor_parameters); + v1alpha2_driver_requests->vendor_parameters = NULL; + } + free(v1alpha2_driver_requests); +} + +cJSON *v1alpha2_driver_requests_convertToJSON(v1alpha2_driver_requests_t *v1alpha2_driver_requests) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_driver_requests->driver_name + if(v1alpha2_driver_requests->driver_name) { + if(cJSON_AddStringToObject(item, "driverName", v1alpha2_driver_requests->driver_name) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_driver_requests->requests + if(v1alpha2_driver_requests->requests) { + cJSON *requests = cJSON_AddArrayToObject(item, "requests"); + if(requests == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *requestsListEntry; + if (v1alpha2_driver_requests->requests) { + list_ForEach(requestsListEntry, v1alpha2_driver_requests->requests) { + cJSON *itemLocal = v1alpha2_resource_request_convertToJSON(requestsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(requests, itemLocal); + } + } + } + + + // v1alpha2_driver_requests->vendor_parameters + if(v1alpha2_driver_requests->vendor_parameters) { + cJSON *vendor_parameters_object = object_convertToJSON(v1alpha2_driver_requests->vendor_parameters); + if(vendor_parameters_object == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "vendorParameters", vendor_parameters_object); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_driver_requests_t *v1alpha2_driver_requests_parseFromJSON(cJSON *v1alpha2_driver_requestsJSON){ + + v1alpha2_driver_requests_t *v1alpha2_driver_requests_local_var = NULL; + + // define the local list for v1alpha2_driver_requests->requests + list_t *requestsList = NULL; + + // v1alpha2_driver_requests->driver_name + cJSON *driver_name = cJSON_GetObjectItemCaseSensitive(v1alpha2_driver_requestsJSON, "driverName"); + if (driver_name) { + if(!cJSON_IsString(driver_name) && !cJSON_IsNull(driver_name)) + { + goto end; //String + } + } + + // v1alpha2_driver_requests->requests + cJSON *requests = cJSON_GetObjectItemCaseSensitive(v1alpha2_driver_requestsJSON, "requests"); + if (requests) { + cJSON *requests_local_nonprimitive = NULL; + if(!cJSON_IsArray(requests)){ + goto end; //nonprimitive container + } + + requestsList = list_createList(); + + cJSON_ArrayForEach(requests_local_nonprimitive,requests ) + { + if(!cJSON_IsObject(requests_local_nonprimitive)){ + goto end; + } + v1alpha2_resource_request_t *requestsItem = v1alpha2_resource_request_parseFromJSON(requests_local_nonprimitive); + + list_addElement(requestsList, requestsItem); + } + } + + // v1alpha2_driver_requests->vendor_parameters + cJSON *vendor_parameters = cJSON_GetObjectItemCaseSensitive(v1alpha2_driver_requestsJSON, "vendorParameters"); + object_t *vendor_parameters_local_object = NULL; + if (vendor_parameters) { + vendor_parameters_local_object = object_parseFromJSON(vendor_parameters); //object + } + + + v1alpha2_driver_requests_local_var = v1alpha2_driver_requests_create ( + driver_name && !cJSON_IsNull(driver_name) ? strdup(driver_name->valuestring) : NULL, + requests ? requestsList : NULL, + vendor_parameters ? vendor_parameters_local_object : NULL + ); + + return v1alpha2_driver_requests_local_var; +end: + if (requestsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, requestsList) { + v1alpha2_resource_request_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(requestsList); + requestsList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_driver_requests.h b/kubernetes/model/v1alpha2_driver_requests.h new file mode 100644 index 0000000..f8425f4 --- /dev/null +++ b/kubernetes/model/v1alpha2_driver_requests.h @@ -0,0 +1,43 @@ +/* + * v1alpha2_driver_requests.h + * + * DriverRequests describes all resources that are needed from one particular driver. + */ + +#ifndef _v1alpha2_driver_requests_H_ +#define _v1alpha2_driver_requests_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_driver_requests_t v1alpha2_driver_requests_t; + +#include "object.h" +#include "v1alpha2_resource_request.h" + + + +typedef struct v1alpha2_driver_requests_t { + char *driver_name; // string + list_t *requests; //nonprimitive container + object_t *vendor_parameters; //object + +} v1alpha2_driver_requests_t; + +v1alpha2_driver_requests_t *v1alpha2_driver_requests_create( + char *driver_name, + list_t *requests, + object_t *vendor_parameters +); + +void v1alpha2_driver_requests_free(v1alpha2_driver_requests_t *v1alpha2_driver_requests); + +v1alpha2_driver_requests_t *v1alpha2_driver_requests_parseFromJSON(cJSON *v1alpha2_driver_requestsJSON); + +cJSON *v1alpha2_driver_requests_convertToJSON(v1alpha2_driver_requests_t *v1alpha2_driver_requests); + +#endif /* _v1alpha2_driver_requests_H_ */ + diff --git a/kubernetes/model/v1alpha2_named_resources_allocation_result.c b/kubernetes/model/v1alpha2_named_resources_allocation_result.c new file mode 100644 index 0000000..ce4881b --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_allocation_result.c @@ -0,0 +1,77 @@ +#include +#include +#include +#include "v1alpha2_named_resources_allocation_result.h" + + + +v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result_create( + char *name + ) { + v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result_local_var = malloc(sizeof(v1alpha2_named_resources_allocation_result_t)); + if (!v1alpha2_named_resources_allocation_result_local_var) { + return NULL; + } + v1alpha2_named_resources_allocation_result_local_var->name = name; + + return v1alpha2_named_resources_allocation_result_local_var; +} + + +void v1alpha2_named_resources_allocation_result_free(v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result) { + if(NULL == v1alpha2_named_resources_allocation_result){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_named_resources_allocation_result->name) { + free(v1alpha2_named_resources_allocation_result->name); + v1alpha2_named_resources_allocation_result->name = NULL; + } + free(v1alpha2_named_resources_allocation_result); +} + +cJSON *v1alpha2_named_resources_allocation_result_convertToJSON(v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_named_resources_allocation_result->name + if (!v1alpha2_named_resources_allocation_result->name) { + goto fail; + } + if(cJSON_AddStringToObject(item, "name", v1alpha2_named_resources_allocation_result->name) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result_parseFromJSON(cJSON *v1alpha2_named_resources_allocation_resultJSON){ + + v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result_local_var = NULL; + + // v1alpha2_named_resources_allocation_result->name + cJSON *name = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_allocation_resultJSON, "name"); + if (!name) { + goto end; + } + + + if(!cJSON_IsString(name)) + { + goto end; //String + } + + + v1alpha2_named_resources_allocation_result_local_var = v1alpha2_named_resources_allocation_result_create ( + strdup(name->valuestring) + ); + + return v1alpha2_named_resources_allocation_result_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_named_resources_allocation_result.h b/kubernetes/model/v1alpha2_named_resources_allocation_result.h new file mode 100644 index 0000000..3bf7190 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_allocation_result.h @@ -0,0 +1,37 @@ +/* + * v1alpha2_named_resources_allocation_result.h + * + * NamedResourcesAllocationResult is used in AllocationResultModel. + */ + +#ifndef _v1alpha2_named_resources_allocation_result_H_ +#define _v1alpha2_named_resources_allocation_result_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_named_resources_allocation_result_t v1alpha2_named_resources_allocation_result_t; + + + + +typedef struct v1alpha2_named_resources_allocation_result_t { + char *name; // string + +} v1alpha2_named_resources_allocation_result_t; + +v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result_create( + char *name +); + +void v1alpha2_named_resources_allocation_result_free(v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result); + +v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result_parseFromJSON(cJSON *v1alpha2_named_resources_allocation_resultJSON); + +cJSON *v1alpha2_named_resources_allocation_result_convertToJSON(v1alpha2_named_resources_allocation_result_t *v1alpha2_named_resources_allocation_result); + +#endif /* _v1alpha2_named_resources_allocation_result_H_ */ + diff --git a/kubernetes/model/v1alpha2_named_resources_attribute.c b/kubernetes/model/v1alpha2_named_resources_attribute.c new file mode 100644 index 0000000..493e227 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_attribute.c @@ -0,0 +1,255 @@ +#include +#include +#include +#include "v1alpha2_named_resources_attribute.h" + + + +v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute_create( + int _bool, + long _int, + v1alpha2_named_resources_int_slice_t *int_slice, + char *name, + char *quantity, + char *string, + v1alpha2_named_resources_string_slice_t *string_slice, + char *version + ) { + v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute_local_var = malloc(sizeof(v1alpha2_named_resources_attribute_t)); + if (!v1alpha2_named_resources_attribute_local_var) { + return NULL; + } + v1alpha2_named_resources_attribute_local_var->_bool = _bool; + v1alpha2_named_resources_attribute_local_var->_int = _int; + v1alpha2_named_resources_attribute_local_var->int_slice = int_slice; + v1alpha2_named_resources_attribute_local_var->name = name; + v1alpha2_named_resources_attribute_local_var->quantity = quantity; + v1alpha2_named_resources_attribute_local_var->string = string; + v1alpha2_named_resources_attribute_local_var->string_slice = string_slice; + v1alpha2_named_resources_attribute_local_var->version = version; + + return v1alpha2_named_resources_attribute_local_var; +} + + +void v1alpha2_named_resources_attribute_free(v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute) { + if(NULL == v1alpha2_named_resources_attribute){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_named_resources_attribute->int_slice) { + v1alpha2_named_resources_int_slice_free(v1alpha2_named_resources_attribute->int_slice); + v1alpha2_named_resources_attribute->int_slice = NULL; + } + if (v1alpha2_named_resources_attribute->name) { + free(v1alpha2_named_resources_attribute->name); + v1alpha2_named_resources_attribute->name = NULL; + } + if (v1alpha2_named_resources_attribute->quantity) { + free(v1alpha2_named_resources_attribute->quantity); + v1alpha2_named_resources_attribute->quantity = NULL; + } + if (v1alpha2_named_resources_attribute->string) { + free(v1alpha2_named_resources_attribute->string); + v1alpha2_named_resources_attribute->string = NULL; + } + if (v1alpha2_named_resources_attribute->string_slice) { + v1alpha2_named_resources_string_slice_free(v1alpha2_named_resources_attribute->string_slice); + v1alpha2_named_resources_attribute->string_slice = NULL; + } + if (v1alpha2_named_resources_attribute->version) { + free(v1alpha2_named_resources_attribute->version); + v1alpha2_named_resources_attribute->version = NULL; + } + free(v1alpha2_named_resources_attribute); +} + +cJSON *v1alpha2_named_resources_attribute_convertToJSON(v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_named_resources_attribute->_bool + if(v1alpha2_named_resources_attribute->_bool) { + if(cJSON_AddBoolToObject(item, "bool", v1alpha2_named_resources_attribute->_bool) == NULL) { + goto fail; //Bool + } + } + + + // v1alpha2_named_resources_attribute->_int + if(v1alpha2_named_resources_attribute->_int) { + if(cJSON_AddNumberToObject(item, "int", v1alpha2_named_resources_attribute->_int) == NULL) { + goto fail; //Numeric + } + } + + + // v1alpha2_named_resources_attribute->int_slice + if(v1alpha2_named_resources_attribute->int_slice) { + cJSON *int_slice_local_JSON = v1alpha2_named_resources_int_slice_convertToJSON(v1alpha2_named_resources_attribute->int_slice); + if(int_slice_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "intSlice", int_slice_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_named_resources_attribute->name + if (!v1alpha2_named_resources_attribute->name) { + goto fail; + } + if(cJSON_AddStringToObject(item, "name", v1alpha2_named_resources_attribute->name) == NULL) { + goto fail; //String + } + + + // v1alpha2_named_resources_attribute->quantity + if(v1alpha2_named_resources_attribute->quantity) { + if(cJSON_AddStringToObject(item, "quantity", v1alpha2_named_resources_attribute->quantity) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_named_resources_attribute->string + if(v1alpha2_named_resources_attribute->string) { + if(cJSON_AddStringToObject(item, "string", v1alpha2_named_resources_attribute->string) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_named_resources_attribute->string_slice + if(v1alpha2_named_resources_attribute->string_slice) { + cJSON *string_slice_local_JSON = v1alpha2_named_resources_string_slice_convertToJSON(v1alpha2_named_resources_attribute->string_slice); + if(string_slice_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "stringSlice", string_slice_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_named_resources_attribute->version + if(v1alpha2_named_resources_attribute->version) { + if(cJSON_AddStringToObject(item, "version", v1alpha2_named_resources_attribute->version) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute_parseFromJSON(cJSON *v1alpha2_named_resources_attributeJSON){ + + v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute_local_var = NULL; + + // define the local variable for v1alpha2_named_resources_attribute->int_slice + v1alpha2_named_resources_int_slice_t *int_slice_local_nonprim = NULL; + + // define the local variable for v1alpha2_named_resources_attribute->string_slice + v1alpha2_named_resources_string_slice_t *string_slice_local_nonprim = NULL; + + // v1alpha2_named_resources_attribute->_bool + cJSON *_bool = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_attributeJSON, "bool"); + if (_bool) { + if(!cJSON_IsBool(_bool)) + { + goto end; //Bool + } + } + + // v1alpha2_named_resources_attribute->_int + cJSON *_int = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_attributeJSON, "int"); + if (_int) { + if(!cJSON_IsNumber(_int)) + { + goto end; //Numeric + } + } + + // v1alpha2_named_resources_attribute->int_slice + cJSON *int_slice = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_attributeJSON, "intSlice"); + if (int_slice) { + int_slice_local_nonprim = v1alpha2_named_resources_int_slice_parseFromJSON(int_slice); //nonprimitive + } + + // v1alpha2_named_resources_attribute->name + cJSON *name = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_attributeJSON, "name"); + if (!name) { + goto end; + } + + + if(!cJSON_IsString(name)) + { + goto end; //String + } + + // v1alpha2_named_resources_attribute->quantity + cJSON *quantity = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_attributeJSON, "quantity"); + if (quantity) { + if(!cJSON_IsString(quantity) && !cJSON_IsNull(quantity)) + { + goto end; //String + } + } + + // v1alpha2_named_resources_attribute->string + cJSON *string = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_attributeJSON, "string"); + if (string) { + if(!cJSON_IsString(string) && !cJSON_IsNull(string)) + { + goto end; //String + } + } + + // v1alpha2_named_resources_attribute->string_slice + cJSON *string_slice = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_attributeJSON, "stringSlice"); + if (string_slice) { + string_slice_local_nonprim = v1alpha2_named_resources_string_slice_parseFromJSON(string_slice); //nonprimitive + } + + // v1alpha2_named_resources_attribute->version + cJSON *version = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_attributeJSON, "version"); + if (version) { + if(!cJSON_IsString(version) && !cJSON_IsNull(version)) + { + goto end; //String + } + } + + + v1alpha2_named_resources_attribute_local_var = v1alpha2_named_resources_attribute_create ( + _bool ? _bool->valueint : 0, + _int ? _int->valuedouble : 0, + int_slice ? int_slice_local_nonprim : NULL, + strdup(name->valuestring), + quantity && !cJSON_IsNull(quantity) ? strdup(quantity->valuestring) : NULL, + string && !cJSON_IsNull(string) ? strdup(string->valuestring) : NULL, + string_slice ? string_slice_local_nonprim : NULL, + version && !cJSON_IsNull(version) ? strdup(version->valuestring) : NULL + ); + + return v1alpha2_named_resources_attribute_local_var; +end: + if (int_slice_local_nonprim) { + v1alpha2_named_resources_int_slice_free(int_slice_local_nonprim); + int_slice_local_nonprim = NULL; + } + if (string_slice_local_nonprim) { + v1alpha2_named_resources_string_slice_free(string_slice_local_nonprim); + string_slice_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_named_resources_attribute.h b/kubernetes/model/v1alpha2_named_resources_attribute.h new file mode 100644 index 0000000..0bdab99 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_attribute.h @@ -0,0 +1,53 @@ +/* + * v1alpha2_named_resources_attribute.h + * + * NamedResourcesAttribute is a combination of an attribute name and its value. + */ + +#ifndef _v1alpha2_named_resources_attribute_H_ +#define _v1alpha2_named_resources_attribute_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_named_resources_attribute_t v1alpha2_named_resources_attribute_t; + +#include "v1alpha2_named_resources_int_slice.h" +#include "v1alpha2_named_resources_string_slice.h" + + + +typedef struct v1alpha2_named_resources_attribute_t { + int _bool; //boolean + long _int; //numeric + struct v1alpha2_named_resources_int_slice_t *int_slice; //model + char *name; // string + char *quantity; // string + char *string; // string + struct v1alpha2_named_resources_string_slice_t *string_slice; //model + char *version; // string + +} v1alpha2_named_resources_attribute_t; + +v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute_create( + int _bool, + long _int, + v1alpha2_named_resources_int_slice_t *int_slice, + char *name, + char *quantity, + char *string, + v1alpha2_named_resources_string_slice_t *string_slice, + char *version +); + +void v1alpha2_named_resources_attribute_free(v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute); + +v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute_parseFromJSON(cJSON *v1alpha2_named_resources_attributeJSON); + +cJSON *v1alpha2_named_resources_attribute_convertToJSON(v1alpha2_named_resources_attribute_t *v1alpha2_named_resources_attribute); + +#endif /* _v1alpha2_named_resources_attribute_H_ */ + diff --git a/kubernetes/model/v1alpha2_named_resources_filter.c b/kubernetes/model/v1alpha2_named_resources_filter.c new file mode 100644 index 0000000..0b4723f --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_filter.c @@ -0,0 +1,77 @@ +#include +#include +#include +#include "v1alpha2_named_resources_filter.h" + + + +v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter_create( + char *selector + ) { + v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter_local_var = malloc(sizeof(v1alpha2_named_resources_filter_t)); + if (!v1alpha2_named_resources_filter_local_var) { + return NULL; + } + v1alpha2_named_resources_filter_local_var->selector = selector; + + return v1alpha2_named_resources_filter_local_var; +} + + +void v1alpha2_named_resources_filter_free(v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter) { + if(NULL == v1alpha2_named_resources_filter){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_named_resources_filter->selector) { + free(v1alpha2_named_resources_filter->selector); + v1alpha2_named_resources_filter->selector = NULL; + } + free(v1alpha2_named_resources_filter); +} + +cJSON *v1alpha2_named_resources_filter_convertToJSON(v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_named_resources_filter->selector + if (!v1alpha2_named_resources_filter->selector) { + goto fail; + } + if(cJSON_AddStringToObject(item, "selector", v1alpha2_named_resources_filter->selector) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter_parseFromJSON(cJSON *v1alpha2_named_resources_filterJSON){ + + v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter_local_var = NULL; + + // v1alpha2_named_resources_filter->selector + cJSON *selector = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_filterJSON, "selector"); + if (!selector) { + goto end; + } + + + if(!cJSON_IsString(selector)) + { + goto end; //String + } + + + v1alpha2_named_resources_filter_local_var = v1alpha2_named_resources_filter_create ( + strdup(selector->valuestring) + ); + + return v1alpha2_named_resources_filter_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_named_resources_filter.h b/kubernetes/model/v1alpha2_named_resources_filter.h new file mode 100644 index 0000000..612662d --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_filter.h @@ -0,0 +1,37 @@ +/* + * v1alpha2_named_resources_filter.h + * + * NamedResourcesFilter is used in ResourceFilterModel. + */ + +#ifndef _v1alpha2_named_resources_filter_H_ +#define _v1alpha2_named_resources_filter_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_named_resources_filter_t v1alpha2_named_resources_filter_t; + + + + +typedef struct v1alpha2_named_resources_filter_t { + char *selector; // string + +} v1alpha2_named_resources_filter_t; + +v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter_create( + char *selector +); + +void v1alpha2_named_resources_filter_free(v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter); + +v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter_parseFromJSON(cJSON *v1alpha2_named_resources_filterJSON); + +cJSON *v1alpha2_named_resources_filter_convertToJSON(v1alpha2_named_resources_filter_t *v1alpha2_named_resources_filter); + +#endif /* _v1alpha2_named_resources_filter_H_ */ + diff --git a/kubernetes/model/v1alpha2_named_resources_instance.c b/kubernetes/model/v1alpha2_named_resources_instance.c new file mode 100644 index 0000000..cfb6ec3 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_instance.c @@ -0,0 +1,140 @@ +#include +#include +#include +#include "v1alpha2_named_resources_instance.h" + + + +v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance_create( + list_t *attributes, + char *name + ) { + v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance_local_var = malloc(sizeof(v1alpha2_named_resources_instance_t)); + if (!v1alpha2_named_resources_instance_local_var) { + return NULL; + } + v1alpha2_named_resources_instance_local_var->attributes = attributes; + v1alpha2_named_resources_instance_local_var->name = name; + + return v1alpha2_named_resources_instance_local_var; +} + + +void v1alpha2_named_resources_instance_free(v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance) { + if(NULL == v1alpha2_named_resources_instance){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_named_resources_instance->attributes) { + list_ForEach(listEntry, v1alpha2_named_resources_instance->attributes) { + v1alpha2_named_resources_attribute_free(listEntry->data); + } + list_freeList(v1alpha2_named_resources_instance->attributes); + v1alpha2_named_resources_instance->attributes = NULL; + } + if (v1alpha2_named_resources_instance->name) { + free(v1alpha2_named_resources_instance->name); + v1alpha2_named_resources_instance->name = NULL; + } + free(v1alpha2_named_resources_instance); +} + +cJSON *v1alpha2_named_resources_instance_convertToJSON(v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_named_resources_instance->attributes + if(v1alpha2_named_resources_instance->attributes) { + cJSON *attributes = cJSON_AddArrayToObject(item, "attributes"); + if(attributes == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *attributesListEntry; + if (v1alpha2_named_resources_instance->attributes) { + list_ForEach(attributesListEntry, v1alpha2_named_resources_instance->attributes) { + cJSON *itemLocal = v1alpha2_named_resources_attribute_convertToJSON(attributesListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(attributes, itemLocal); + } + } + } + + + // v1alpha2_named_resources_instance->name + if (!v1alpha2_named_resources_instance->name) { + goto fail; + } + if(cJSON_AddStringToObject(item, "name", v1alpha2_named_resources_instance->name) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance_parseFromJSON(cJSON *v1alpha2_named_resources_instanceJSON){ + + v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance_local_var = NULL; + + // define the local list for v1alpha2_named_resources_instance->attributes + list_t *attributesList = NULL; + + // v1alpha2_named_resources_instance->attributes + cJSON *attributes = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_instanceJSON, "attributes"); + if (attributes) { + cJSON *attributes_local_nonprimitive = NULL; + if(!cJSON_IsArray(attributes)){ + goto end; //nonprimitive container + } + + attributesList = list_createList(); + + cJSON_ArrayForEach(attributes_local_nonprimitive,attributes ) + { + if(!cJSON_IsObject(attributes_local_nonprimitive)){ + goto end; + } + v1alpha2_named_resources_attribute_t *attributesItem = v1alpha2_named_resources_attribute_parseFromJSON(attributes_local_nonprimitive); + + list_addElement(attributesList, attributesItem); + } + } + + // v1alpha2_named_resources_instance->name + cJSON *name = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_instanceJSON, "name"); + if (!name) { + goto end; + } + + + if(!cJSON_IsString(name)) + { + goto end; //String + } + + + v1alpha2_named_resources_instance_local_var = v1alpha2_named_resources_instance_create ( + attributes ? attributesList : NULL, + strdup(name->valuestring) + ); + + return v1alpha2_named_resources_instance_local_var; +end: + if (attributesList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, attributesList) { + v1alpha2_named_resources_attribute_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(attributesList); + attributesList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_named_resources_instance.h b/kubernetes/model/v1alpha2_named_resources_instance.h new file mode 100644 index 0000000..8548891 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_instance.h @@ -0,0 +1,40 @@ +/* + * v1alpha2_named_resources_instance.h + * + * NamedResourcesInstance represents one individual hardware instance that can be selected based on its attributes. + */ + +#ifndef _v1alpha2_named_resources_instance_H_ +#define _v1alpha2_named_resources_instance_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_named_resources_instance_t v1alpha2_named_resources_instance_t; + +#include "v1alpha2_named_resources_attribute.h" + + + +typedef struct v1alpha2_named_resources_instance_t { + list_t *attributes; //nonprimitive container + char *name; // string + +} v1alpha2_named_resources_instance_t; + +v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance_create( + list_t *attributes, + char *name +); + +void v1alpha2_named_resources_instance_free(v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance); + +v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance_parseFromJSON(cJSON *v1alpha2_named_resources_instanceJSON); + +cJSON *v1alpha2_named_resources_instance_convertToJSON(v1alpha2_named_resources_instance_t *v1alpha2_named_resources_instance); + +#endif /* _v1alpha2_named_resources_instance_H_ */ + diff --git a/kubernetes/model/v1alpha2_named_resources_int_slice.c b/kubernetes/model/v1alpha2_named_resources_int_slice.c new file mode 100644 index 0000000..61dccca --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_int_slice.c @@ -0,0 +1,117 @@ +#include +#include +#include +#include "v1alpha2_named_resources_int_slice.h" + + + +v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice_create( + list_t *ints + ) { + v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice_local_var = malloc(sizeof(v1alpha2_named_resources_int_slice_t)); + if (!v1alpha2_named_resources_int_slice_local_var) { + return NULL; + } + v1alpha2_named_resources_int_slice_local_var->ints = ints; + + return v1alpha2_named_resources_int_slice_local_var; +} + + +void v1alpha2_named_resources_int_slice_free(v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice) { + if(NULL == v1alpha2_named_resources_int_slice){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_named_resources_int_slice->ints) { + list_ForEach(listEntry, v1alpha2_named_resources_int_slice->ints) { + free(listEntry->data); + } + list_freeList(v1alpha2_named_resources_int_slice->ints); + v1alpha2_named_resources_int_slice->ints = NULL; + } + free(v1alpha2_named_resources_int_slice); +} + +cJSON *v1alpha2_named_resources_int_slice_convertToJSON(v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_named_resources_int_slice->ints + if (!v1alpha2_named_resources_int_slice->ints) { + goto fail; + } + cJSON *ints = cJSON_AddArrayToObject(item, "ints"); + if(ints == NULL) { + goto fail; //primitive container + } + + listEntry_t *intsListEntry; + list_ForEach(intsListEntry, v1alpha2_named_resources_int_slice->ints) { + if(cJSON_AddNumberToObject(ints, "", *(double *)intsListEntry->data) == NULL) + { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice_parseFromJSON(cJSON *v1alpha2_named_resources_int_sliceJSON){ + + v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice_local_var = NULL; + + // define the local list for v1alpha2_named_resources_int_slice->ints + list_t *intsList = NULL; + + // v1alpha2_named_resources_int_slice->ints + cJSON *ints = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_int_sliceJSON, "ints"); + if (!ints) { + goto end; + } + + + cJSON *ints_local = NULL; + if(!cJSON_IsArray(ints)) { + goto end;//primitive container + } + intsList = list_createList(); + + cJSON_ArrayForEach(ints_local, ints) + { + if(!cJSON_IsNumber(ints_local)) + { + goto end; + } + double *ints_local_value = (double *)calloc(1, sizeof(double)); + if(!ints_local_value) + { + goto end; + } + *ints_local_value = ints_local->valuedouble; + list_addElement(intsList , ints_local_value); + } + + + v1alpha2_named_resources_int_slice_local_var = v1alpha2_named_resources_int_slice_create ( + intsList + ); + + return v1alpha2_named_resources_int_slice_local_var; +end: + if (intsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, intsList) { + free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(intsList); + intsList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_named_resources_int_slice.h b/kubernetes/model/v1alpha2_named_resources_int_slice.h new file mode 100644 index 0000000..6217e42 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_int_slice.h @@ -0,0 +1,37 @@ +/* + * v1alpha2_named_resources_int_slice.h + * + * NamedResourcesIntSlice contains a slice of 64-bit integers. + */ + +#ifndef _v1alpha2_named_resources_int_slice_H_ +#define _v1alpha2_named_resources_int_slice_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_named_resources_int_slice_t v1alpha2_named_resources_int_slice_t; + + + + +typedef struct v1alpha2_named_resources_int_slice_t { + list_t *ints; //primitive container + +} v1alpha2_named_resources_int_slice_t; + +v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice_create( + list_t *ints +); + +void v1alpha2_named_resources_int_slice_free(v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice); + +v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice_parseFromJSON(cJSON *v1alpha2_named_resources_int_sliceJSON); + +cJSON *v1alpha2_named_resources_int_slice_convertToJSON(v1alpha2_named_resources_int_slice_t *v1alpha2_named_resources_int_slice); + +#endif /* _v1alpha2_named_resources_int_slice_H_ */ + diff --git a/kubernetes/model/v1alpha2_named_resources_request.c b/kubernetes/model/v1alpha2_named_resources_request.c new file mode 100644 index 0000000..1819919 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_request.c @@ -0,0 +1,77 @@ +#include +#include +#include +#include "v1alpha2_named_resources_request.h" + + + +v1alpha2_named_resources_request_t *v1alpha2_named_resources_request_create( + char *selector + ) { + v1alpha2_named_resources_request_t *v1alpha2_named_resources_request_local_var = malloc(sizeof(v1alpha2_named_resources_request_t)); + if (!v1alpha2_named_resources_request_local_var) { + return NULL; + } + v1alpha2_named_resources_request_local_var->selector = selector; + + return v1alpha2_named_resources_request_local_var; +} + + +void v1alpha2_named_resources_request_free(v1alpha2_named_resources_request_t *v1alpha2_named_resources_request) { + if(NULL == v1alpha2_named_resources_request){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_named_resources_request->selector) { + free(v1alpha2_named_resources_request->selector); + v1alpha2_named_resources_request->selector = NULL; + } + free(v1alpha2_named_resources_request); +} + +cJSON *v1alpha2_named_resources_request_convertToJSON(v1alpha2_named_resources_request_t *v1alpha2_named_resources_request) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_named_resources_request->selector + if (!v1alpha2_named_resources_request->selector) { + goto fail; + } + if(cJSON_AddStringToObject(item, "selector", v1alpha2_named_resources_request->selector) == NULL) { + goto fail; //String + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_named_resources_request_t *v1alpha2_named_resources_request_parseFromJSON(cJSON *v1alpha2_named_resources_requestJSON){ + + v1alpha2_named_resources_request_t *v1alpha2_named_resources_request_local_var = NULL; + + // v1alpha2_named_resources_request->selector + cJSON *selector = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_requestJSON, "selector"); + if (!selector) { + goto end; + } + + + if(!cJSON_IsString(selector)) + { + goto end; //String + } + + + v1alpha2_named_resources_request_local_var = v1alpha2_named_resources_request_create ( + strdup(selector->valuestring) + ); + + return v1alpha2_named_resources_request_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_named_resources_request.h b/kubernetes/model/v1alpha2_named_resources_request.h new file mode 100644 index 0000000..0c06d23 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_request.h @@ -0,0 +1,37 @@ +/* + * v1alpha2_named_resources_request.h + * + * NamedResourcesRequest is used in ResourceRequestModel. + */ + +#ifndef _v1alpha2_named_resources_request_H_ +#define _v1alpha2_named_resources_request_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_named_resources_request_t v1alpha2_named_resources_request_t; + + + + +typedef struct v1alpha2_named_resources_request_t { + char *selector; // string + +} v1alpha2_named_resources_request_t; + +v1alpha2_named_resources_request_t *v1alpha2_named_resources_request_create( + char *selector +); + +void v1alpha2_named_resources_request_free(v1alpha2_named_resources_request_t *v1alpha2_named_resources_request); + +v1alpha2_named_resources_request_t *v1alpha2_named_resources_request_parseFromJSON(cJSON *v1alpha2_named_resources_requestJSON); + +cJSON *v1alpha2_named_resources_request_convertToJSON(v1alpha2_named_resources_request_t *v1alpha2_named_resources_request); + +#endif /* _v1alpha2_named_resources_request_H_ */ + diff --git a/kubernetes/model/v1alpha2_named_resources_resources.c b/kubernetes/model/v1alpha2_named_resources_resources.c new file mode 100644 index 0000000..7410f2c --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_resources.c @@ -0,0 +1,116 @@ +#include +#include +#include +#include "v1alpha2_named_resources_resources.h" + + + +v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources_create( + list_t *instances + ) { + v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources_local_var = malloc(sizeof(v1alpha2_named_resources_resources_t)); + if (!v1alpha2_named_resources_resources_local_var) { + return NULL; + } + v1alpha2_named_resources_resources_local_var->instances = instances; + + return v1alpha2_named_resources_resources_local_var; +} + + +void v1alpha2_named_resources_resources_free(v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources) { + if(NULL == v1alpha2_named_resources_resources){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_named_resources_resources->instances) { + list_ForEach(listEntry, v1alpha2_named_resources_resources->instances) { + v1alpha2_named_resources_instance_free(listEntry->data); + } + list_freeList(v1alpha2_named_resources_resources->instances); + v1alpha2_named_resources_resources->instances = NULL; + } + free(v1alpha2_named_resources_resources); +} + +cJSON *v1alpha2_named_resources_resources_convertToJSON(v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_named_resources_resources->instances + if (!v1alpha2_named_resources_resources->instances) { + goto fail; + } + cJSON *instances = cJSON_AddArrayToObject(item, "instances"); + if(instances == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *instancesListEntry; + if (v1alpha2_named_resources_resources->instances) { + list_ForEach(instancesListEntry, v1alpha2_named_resources_resources->instances) { + cJSON *itemLocal = v1alpha2_named_resources_instance_convertToJSON(instancesListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(instances, itemLocal); + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources_parseFromJSON(cJSON *v1alpha2_named_resources_resourcesJSON){ + + v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources_local_var = NULL; + + // define the local list for v1alpha2_named_resources_resources->instances + list_t *instancesList = NULL; + + // v1alpha2_named_resources_resources->instances + cJSON *instances = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_resourcesJSON, "instances"); + if (!instances) { + goto end; + } + + + cJSON *instances_local_nonprimitive = NULL; + if(!cJSON_IsArray(instances)){ + goto end; //nonprimitive container + } + + instancesList = list_createList(); + + cJSON_ArrayForEach(instances_local_nonprimitive,instances ) + { + if(!cJSON_IsObject(instances_local_nonprimitive)){ + goto end; + } + v1alpha2_named_resources_instance_t *instancesItem = v1alpha2_named_resources_instance_parseFromJSON(instances_local_nonprimitive); + + list_addElement(instancesList, instancesItem); + } + + + v1alpha2_named_resources_resources_local_var = v1alpha2_named_resources_resources_create ( + instancesList + ); + + return v1alpha2_named_resources_resources_local_var; +end: + if (instancesList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, instancesList) { + v1alpha2_named_resources_instance_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(instancesList); + instancesList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_named_resources_resources.h b/kubernetes/model/v1alpha2_named_resources_resources.h new file mode 100644 index 0000000..65e8e52 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_resources.h @@ -0,0 +1,38 @@ +/* + * v1alpha2_named_resources_resources.h + * + * NamedResourcesResources is used in ResourceModel. + */ + +#ifndef _v1alpha2_named_resources_resources_H_ +#define _v1alpha2_named_resources_resources_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_named_resources_resources_t v1alpha2_named_resources_resources_t; + +#include "v1alpha2_named_resources_instance.h" + + + +typedef struct v1alpha2_named_resources_resources_t { + list_t *instances; //nonprimitive container + +} v1alpha2_named_resources_resources_t; + +v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources_create( + list_t *instances +); + +void v1alpha2_named_resources_resources_free(v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources); + +v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources_parseFromJSON(cJSON *v1alpha2_named_resources_resourcesJSON); + +cJSON *v1alpha2_named_resources_resources_convertToJSON(v1alpha2_named_resources_resources_t *v1alpha2_named_resources_resources); + +#endif /* _v1alpha2_named_resources_resources_H_ */ + diff --git a/kubernetes/model/v1alpha2_named_resources_string_slice.c b/kubernetes/model/v1alpha2_named_resources_string_slice.c new file mode 100644 index 0000000..9a87dc8 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_string_slice.c @@ -0,0 +1,111 @@ +#include +#include +#include +#include "v1alpha2_named_resources_string_slice.h" + + + +v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice_create( + list_t *strings + ) { + v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice_local_var = malloc(sizeof(v1alpha2_named_resources_string_slice_t)); + if (!v1alpha2_named_resources_string_slice_local_var) { + return NULL; + } + v1alpha2_named_resources_string_slice_local_var->strings = strings; + + return v1alpha2_named_resources_string_slice_local_var; +} + + +void v1alpha2_named_resources_string_slice_free(v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice) { + if(NULL == v1alpha2_named_resources_string_slice){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_named_resources_string_slice->strings) { + list_ForEach(listEntry, v1alpha2_named_resources_string_slice->strings) { + free(listEntry->data); + } + list_freeList(v1alpha2_named_resources_string_slice->strings); + v1alpha2_named_resources_string_slice->strings = NULL; + } + free(v1alpha2_named_resources_string_slice); +} + +cJSON *v1alpha2_named_resources_string_slice_convertToJSON(v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_named_resources_string_slice->strings + if (!v1alpha2_named_resources_string_slice->strings) { + goto fail; + } + cJSON *strings = cJSON_AddArrayToObject(item, "strings"); + if(strings == NULL) { + goto fail; //primitive container + } + + listEntry_t *stringsListEntry; + list_ForEach(stringsListEntry, v1alpha2_named_resources_string_slice->strings) { + if(cJSON_AddStringToObject(strings, "", (char*)stringsListEntry->data) == NULL) + { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice_parseFromJSON(cJSON *v1alpha2_named_resources_string_sliceJSON){ + + v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice_local_var = NULL; + + // define the local list for v1alpha2_named_resources_string_slice->strings + list_t *stringsList = NULL; + + // v1alpha2_named_resources_string_slice->strings + cJSON *strings = cJSON_GetObjectItemCaseSensitive(v1alpha2_named_resources_string_sliceJSON, "strings"); + if (!strings) { + goto end; + } + + + cJSON *strings_local = NULL; + if(!cJSON_IsArray(strings)) { + goto end;//primitive container + } + stringsList = list_createList(); + + cJSON_ArrayForEach(strings_local, strings) + { + if(!cJSON_IsString(strings_local)) + { + goto end; + } + list_addElement(stringsList , strdup(strings_local->valuestring)); + } + + + v1alpha2_named_resources_string_slice_local_var = v1alpha2_named_resources_string_slice_create ( + stringsList + ); + + return v1alpha2_named_resources_string_slice_local_var; +end: + if (stringsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, stringsList) { + free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(stringsList); + stringsList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_named_resources_string_slice.h b/kubernetes/model/v1alpha2_named_resources_string_slice.h new file mode 100644 index 0000000..6a1c884 --- /dev/null +++ b/kubernetes/model/v1alpha2_named_resources_string_slice.h @@ -0,0 +1,37 @@ +/* + * v1alpha2_named_resources_string_slice.h + * + * NamedResourcesStringSlice contains a slice of strings. + */ + +#ifndef _v1alpha2_named_resources_string_slice_H_ +#define _v1alpha2_named_resources_string_slice_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_named_resources_string_slice_t v1alpha2_named_resources_string_slice_t; + + + + +typedef struct v1alpha2_named_resources_string_slice_t { + list_t *strings; //primitive container + +} v1alpha2_named_resources_string_slice_t; + +v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice_create( + list_t *strings +); + +void v1alpha2_named_resources_string_slice_free(v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice); + +v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice_parseFromJSON(cJSON *v1alpha2_named_resources_string_sliceJSON); + +cJSON *v1alpha2_named_resources_string_slice_convertToJSON(v1alpha2_named_resources_string_slice_t *v1alpha2_named_resources_string_slice); + +#endif /* _v1alpha2_named_resources_string_slice_H_ */ + diff --git a/kubernetes/model/v1alpha2_resource_claim_parameters.c b/kubernetes/model/v1alpha2_resource_claim_parameters.c new file mode 100644 index 0000000..ef29569 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_claim_parameters.c @@ -0,0 +1,246 @@ +#include +#include +#include +#include "v1alpha2_resource_claim_parameters.h" + + + +v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters_create( + char *api_version, + list_t *driver_requests, + v1alpha2_resource_claim_parameters_reference_t *generated_from, + char *kind, + v1_object_meta_t *metadata, + int shareable + ) { + v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters_local_var = malloc(sizeof(v1alpha2_resource_claim_parameters_t)); + if (!v1alpha2_resource_claim_parameters_local_var) { + return NULL; + } + v1alpha2_resource_claim_parameters_local_var->api_version = api_version; + v1alpha2_resource_claim_parameters_local_var->driver_requests = driver_requests; + v1alpha2_resource_claim_parameters_local_var->generated_from = generated_from; + v1alpha2_resource_claim_parameters_local_var->kind = kind; + v1alpha2_resource_claim_parameters_local_var->metadata = metadata; + v1alpha2_resource_claim_parameters_local_var->shareable = shareable; + + return v1alpha2_resource_claim_parameters_local_var; +} + + +void v1alpha2_resource_claim_parameters_free(v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters) { + if(NULL == v1alpha2_resource_claim_parameters){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_resource_claim_parameters->api_version) { + free(v1alpha2_resource_claim_parameters->api_version); + v1alpha2_resource_claim_parameters->api_version = NULL; + } + if (v1alpha2_resource_claim_parameters->driver_requests) { + list_ForEach(listEntry, v1alpha2_resource_claim_parameters->driver_requests) { + v1alpha2_driver_requests_free(listEntry->data); + } + list_freeList(v1alpha2_resource_claim_parameters->driver_requests); + v1alpha2_resource_claim_parameters->driver_requests = NULL; + } + if (v1alpha2_resource_claim_parameters->generated_from) { + v1alpha2_resource_claim_parameters_reference_free(v1alpha2_resource_claim_parameters->generated_from); + v1alpha2_resource_claim_parameters->generated_from = NULL; + } + if (v1alpha2_resource_claim_parameters->kind) { + free(v1alpha2_resource_claim_parameters->kind); + v1alpha2_resource_claim_parameters->kind = NULL; + } + if (v1alpha2_resource_claim_parameters->metadata) { + v1_object_meta_free(v1alpha2_resource_claim_parameters->metadata); + v1alpha2_resource_claim_parameters->metadata = NULL; + } + free(v1alpha2_resource_claim_parameters); +} + +cJSON *v1alpha2_resource_claim_parameters_convertToJSON(v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_resource_claim_parameters->api_version + if(v1alpha2_resource_claim_parameters->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1alpha2_resource_claim_parameters->api_version) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_claim_parameters->driver_requests + if(v1alpha2_resource_claim_parameters->driver_requests) { + cJSON *driver_requests = cJSON_AddArrayToObject(item, "driverRequests"); + if(driver_requests == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *driver_requestsListEntry; + if (v1alpha2_resource_claim_parameters->driver_requests) { + list_ForEach(driver_requestsListEntry, v1alpha2_resource_claim_parameters->driver_requests) { + cJSON *itemLocal = v1alpha2_driver_requests_convertToJSON(driver_requestsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(driver_requests, itemLocal); + } + } + } + + + // v1alpha2_resource_claim_parameters->generated_from + if(v1alpha2_resource_claim_parameters->generated_from) { + cJSON *generated_from_local_JSON = v1alpha2_resource_claim_parameters_reference_convertToJSON(v1alpha2_resource_claim_parameters->generated_from); + if(generated_from_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "generatedFrom", generated_from_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_resource_claim_parameters->kind + if(v1alpha2_resource_claim_parameters->kind) { + if(cJSON_AddStringToObject(item, "kind", v1alpha2_resource_claim_parameters->kind) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_claim_parameters->metadata + if(v1alpha2_resource_claim_parameters->metadata) { + cJSON *metadata_local_JSON = v1_object_meta_convertToJSON(v1alpha2_resource_claim_parameters->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_resource_claim_parameters->shareable + if(v1alpha2_resource_claim_parameters->shareable) { + if(cJSON_AddBoolToObject(item, "shareable", v1alpha2_resource_claim_parameters->shareable) == NULL) { + goto fail; //Bool + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters_parseFromJSON(cJSON *v1alpha2_resource_claim_parametersJSON){ + + v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters_local_var = NULL; + + // define the local list for v1alpha2_resource_claim_parameters->driver_requests + list_t *driver_requestsList = NULL; + + // define the local variable for v1alpha2_resource_claim_parameters->generated_from + v1alpha2_resource_claim_parameters_reference_t *generated_from_local_nonprim = NULL; + + // define the local variable for v1alpha2_resource_claim_parameters->metadata + v1_object_meta_t *metadata_local_nonprim = NULL; + + // v1alpha2_resource_claim_parameters->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parametersJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1alpha2_resource_claim_parameters->driver_requests + cJSON *driver_requests = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parametersJSON, "driverRequests"); + if (driver_requests) { + cJSON *driver_requests_local_nonprimitive = NULL; + if(!cJSON_IsArray(driver_requests)){ + goto end; //nonprimitive container + } + + driver_requestsList = list_createList(); + + cJSON_ArrayForEach(driver_requests_local_nonprimitive,driver_requests ) + { + if(!cJSON_IsObject(driver_requests_local_nonprimitive)){ + goto end; + } + v1alpha2_driver_requests_t *driver_requestsItem = v1alpha2_driver_requests_parseFromJSON(driver_requests_local_nonprimitive); + + list_addElement(driver_requestsList, driver_requestsItem); + } + } + + // v1alpha2_resource_claim_parameters->generated_from + cJSON *generated_from = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parametersJSON, "generatedFrom"); + if (generated_from) { + generated_from_local_nonprim = v1alpha2_resource_claim_parameters_reference_parseFromJSON(generated_from); //nonprimitive + } + + // v1alpha2_resource_claim_parameters->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parametersJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1alpha2_resource_claim_parameters->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parametersJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_object_meta_parseFromJSON(metadata); //nonprimitive + } + + // v1alpha2_resource_claim_parameters->shareable + cJSON *shareable = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parametersJSON, "shareable"); + if (shareable) { + if(!cJSON_IsBool(shareable)) + { + goto end; //Bool + } + } + + + v1alpha2_resource_claim_parameters_local_var = v1alpha2_resource_claim_parameters_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + driver_requests ? driver_requestsList : NULL, + generated_from ? generated_from_local_nonprim : NULL, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL, + shareable ? shareable->valueint : 0 + ); + + return v1alpha2_resource_claim_parameters_local_var; +end: + if (driver_requestsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, driver_requestsList) { + v1alpha2_driver_requests_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(driver_requestsList); + driver_requestsList = NULL; + } + if (generated_from_local_nonprim) { + v1alpha2_resource_claim_parameters_reference_free(generated_from_local_nonprim); + generated_from_local_nonprim = NULL; + } + if (metadata_local_nonprim) { + v1_object_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_resource_claim_parameters.h b/kubernetes/model/v1alpha2_resource_claim_parameters.h new file mode 100644 index 0000000..a7e0754 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_claim_parameters.h @@ -0,0 +1,50 @@ +/* + * v1alpha2_resource_claim_parameters.h + * + * ResourceClaimParameters defines resource requests for a ResourceClaim in an in-tree format understood by Kubernetes. + */ + +#ifndef _v1alpha2_resource_claim_parameters_H_ +#define _v1alpha2_resource_claim_parameters_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_resource_claim_parameters_t v1alpha2_resource_claim_parameters_t; + +#include "v1_object_meta.h" +#include "v1alpha2_driver_requests.h" +#include "v1alpha2_resource_claim_parameters_reference.h" + + + +typedef struct v1alpha2_resource_claim_parameters_t { + char *api_version; // string + list_t *driver_requests; //nonprimitive container + struct v1alpha2_resource_claim_parameters_reference_t *generated_from; //model + char *kind; // string + struct v1_object_meta_t *metadata; //model + int shareable; //boolean + +} v1alpha2_resource_claim_parameters_t; + +v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters_create( + char *api_version, + list_t *driver_requests, + v1alpha2_resource_claim_parameters_reference_t *generated_from, + char *kind, + v1_object_meta_t *metadata, + int shareable +); + +void v1alpha2_resource_claim_parameters_free(v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters); + +v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters_parseFromJSON(cJSON *v1alpha2_resource_claim_parametersJSON); + +cJSON *v1alpha2_resource_claim_parameters_convertToJSON(v1alpha2_resource_claim_parameters_t *v1alpha2_resource_claim_parameters); + +#endif /* _v1alpha2_resource_claim_parameters_H_ */ + diff --git a/kubernetes/model/v1alpha2_resource_claim_parameters_list.c b/kubernetes/model/v1alpha2_resource_claim_parameters_list.c new file mode 100644 index 0000000..8feff65 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_claim_parameters_list.c @@ -0,0 +1,197 @@ +#include +#include +#include +#include "v1alpha2_resource_claim_parameters_list.h" + + + +v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata + ) { + v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list_local_var = malloc(sizeof(v1alpha2_resource_claim_parameters_list_t)); + if (!v1alpha2_resource_claim_parameters_list_local_var) { + return NULL; + } + v1alpha2_resource_claim_parameters_list_local_var->api_version = api_version; + v1alpha2_resource_claim_parameters_list_local_var->items = items; + v1alpha2_resource_claim_parameters_list_local_var->kind = kind; + v1alpha2_resource_claim_parameters_list_local_var->metadata = metadata; + + return v1alpha2_resource_claim_parameters_list_local_var; +} + + +void v1alpha2_resource_claim_parameters_list_free(v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list) { + if(NULL == v1alpha2_resource_claim_parameters_list){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_resource_claim_parameters_list->api_version) { + free(v1alpha2_resource_claim_parameters_list->api_version); + v1alpha2_resource_claim_parameters_list->api_version = NULL; + } + if (v1alpha2_resource_claim_parameters_list->items) { + list_ForEach(listEntry, v1alpha2_resource_claim_parameters_list->items) { + v1alpha2_resource_claim_parameters_free(listEntry->data); + } + list_freeList(v1alpha2_resource_claim_parameters_list->items); + v1alpha2_resource_claim_parameters_list->items = NULL; + } + if (v1alpha2_resource_claim_parameters_list->kind) { + free(v1alpha2_resource_claim_parameters_list->kind); + v1alpha2_resource_claim_parameters_list->kind = NULL; + } + if (v1alpha2_resource_claim_parameters_list->metadata) { + v1_list_meta_free(v1alpha2_resource_claim_parameters_list->metadata); + v1alpha2_resource_claim_parameters_list->metadata = NULL; + } + free(v1alpha2_resource_claim_parameters_list); +} + +cJSON *v1alpha2_resource_claim_parameters_list_convertToJSON(v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_resource_claim_parameters_list->api_version + if(v1alpha2_resource_claim_parameters_list->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1alpha2_resource_claim_parameters_list->api_version) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_claim_parameters_list->items + if (!v1alpha2_resource_claim_parameters_list->items) { + goto fail; + } + cJSON *items = cJSON_AddArrayToObject(item, "items"); + if(items == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *itemsListEntry; + if (v1alpha2_resource_claim_parameters_list->items) { + list_ForEach(itemsListEntry, v1alpha2_resource_claim_parameters_list->items) { + cJSON *itemLocal = v1alpha2_resource_claim_parameters_convertToJSON(itemsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(items, itemLocal); + } + } + + + // v1alpha2_resource_claim_parameters_list->kind + if(v1alpha2_resource_claim_parameters_list->kind) { + if(cJSON_AddStringToObject(item, "kind", v1alpha2_resource_claim_parameters_list->kind) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_claim_parameters_list->metadata + if(v1alpha2_resource_claim_parameters_list->metadata) { + cJSON *metadata_local_JSON = v1_list_meta_convertToJSON(v1alpha2_resource_claim_parameters_list->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list_parseFromJSON(cJSON *v1alpha2_resource_claim_parameters_listJSON){ + + v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list_local_var = NULL; + + // define the local list for v1alpha2_resource_claim_parameters_list->items + list_t *itemsList = NULL; + + // define the local variable for v1alpha2_resource_claim_parameters_list->metadata + v1_list_meta_t *metadata_local_nonprim = NULL; + + // v1alpha2_resource_claim_parameters_list->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parameters_listJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1alpha2_resource_claim_parameters_list->items + cJSON *items = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parameters_listJSON, "items"); + if (!items) { + goto end; + } + + + cJSON *items_local_nonprimitive = NULL; + if(!cJSON_IsArray(items)){ + goto end; //nonprimitive container + } + + itemsList = list_createList(); + + cJSON_ArrayForEach(items_local_nonprimitive,items ) + { + if(!cJSON_IsObject(items_local_nonprimitive)){ + goto end; + } + v1alpha2_resource_claim_parameters_t *itemsItem = v1alpha2_resource_claim_parameters_parseFromJSON(items_local_nonprimitive); + + list_addElement(itemsList, itemsItem); + } + + // v1alpha2_resource_claim_parameters_list->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parameters_listJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1alpha2_resource_claim_parameters_list->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_claim_parameters_listJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_list_meta_parseFromJSON(metadata); //nonprimitive + } + + + v1alpha2_resource_claim_parameters_list_local_var = v1alpha2_resource_claim_parameters_list_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + itemsList, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL + ); + + return v1alpha2_resource_claim_parameters_list_local_var; +end: + if (itemsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, itemsList) { + v1alpha2_resource_claim_parameters_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(itemsList); + itemsList = NULL; + } + if (metadata_local_nonprim) { + v1_list_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_resource_claim_parameters_list.h b/kubernetes/model/v1alpha2_resource_claim_parameters_list.h new file mode 100644 index 0000000..f1407d7 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_claim_parameters_list.h @@ -0,0 +1,45 @@ +/* + * v1alpha2_resource_claim_parameters_list.h + * + * ResourceClaimParametersList is a collection of ResourceClaimParameters. + */ + +#ifndef _v1alpha2_resource_claim_parameters_list_H_ +#define _v1alpha2_resource_claim_parameters_list_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_resource_claim_parameters_list_t v1alpha2_resource_claim_parameters_list_t; + +#include "v1_list_meta.h" +#include "v1alpha2_resource_claim_parameters.h" + + + +typedef struct v1alpha2_resource_claim_parameters_list_t { + char *api_version; // string + list_t *items; //nonprimitive container + char *kind; // string + struct v1_list_meta_t *metadata; //model + +} v1alpha2_resource_claim_parameters_list_t; + +v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata +); + +void v1alpha2_resource_claim_parameters_list_free(v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list); + +v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list_parseFromJSON(cJSON *v1alpha2_resource_claim_parameters_listJSON); + +cJSON *v1alpha2_resource_claim_parameters_list_convertToJSON(v1alpha2_resource_claim_parameters_list_t *v1alpha2_resource_claim_parameters_list); + +#endif /* _v1alpha2_resource_claim_parameters_list_H_ */ + diff --git a/kubernetes/model/v1alpha2_resource_class.c b/kubernetes/model/v1alpha2_resource_class.c index 0d7e754..09b59bf 100644 --- a/kubernetes/model/v1alpha2_resource_class.c +++ b/kubernetes/model/v1alpha2_resource_class.c @@ -11,6 +11,7 @@ v1alpha2_resource_class_t *v1alpha2_resource_class_create( char *kind, v1_object_meta_t *metadata, v1alpha2_resource_class_parameters_reference_t *parameters_ref, + int structured_parameters, v1_node_selector_t *suitable_nodes ) { v1alpha2_resource_class_t *v1alpha2_resource_class_local_var = malloc(sizeof(v1alpha2_resource_class_t)); @@ -22,6 +23,7 @@ v1alpha2_resource_class_t *v1alpha2_resource_class_create( v1alpha2_resource_class_local_var->kind = kind; v1alpha2_resource_class_local_var->metadata = metadata; v1alpha2_resource_class_local_var->parameters_ref = parameters_ref; + v1alpha2_resource_class_local_var->structured_parameters = structured_parameters; v1alpha2_resource_class_local_var->suitable_nodes = suitable_nodes; return v1alpha2_resource_class_local_var; @@ -114,6 +116,14 @@ cJSON *v1alpha2_resource_class_convertToJSON(v1alpha2_resource_class_t *v1alpha2 } + // v1alpha2_resource_class->structured_parameters + if(v1alpha2_resource_class->structured_parameters) { + if(cJSON_AddBoolToObject(item, "structuredParameters", v1alpha2_resource_class->structured_parameters) == NULL) { + goto fail; //Bool + } + } + + // v1alpha2_resource_class->suitable_nodes if(v1alpha2_resource_class->suitable_nodes) { cJSON *suitable_nodes_local_JSON = v1_node_selector_convertToJSON(v1alpha2_resource_class->suitable_nodes); @@ -189,6 +199,15 @@ v1alpha2_resource_class_t *v1alpha2_resource_class_parseFromJSON(cJSON *v1alpha2 parameters_ref_local_nonprim = v1alpha2_resource_class_parameters_reference_parseFromJSON(parameters_ref); //nonprimitive } + // v1alpha2_resource_class->structured_parameters + cJSON *structured_parameters = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_classJSON, "structuredParameters"); + if (structured_parameters) { + if(!cJSON_IsBool(structured_parameters)) + { + goto end; //Bool + } + } + // v1alpha2_resource_class->suitable_nodes cJSON *suitable_nodes = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_classJSON, "suitableNodes"); if (suitable_nodes) { @@ -202,6 +221,7 @@ v1alpha2_resource_class_t *v1alpha2_resource_class_parseFromJSON(cJSON *v1alpha2 kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, metadata ? metadata_local_nonprim : NULL, parameters_ref ? parameters_ref_local_nonprim : NULL, + structured_parameters ? structured_parameters->valueint : 0, suitable_nodes ? suitable_nodes_local_nonprim : NULL ); diff --git a/kubernetes/model/v1alpha2_resource_class.h b/kubernetes/model/v1alpha2_resource_class.h index 2773474..9e20e4d 100644 --- a/kubernetes/model/v1alpha2_resource_class.h +++ b/kubernetes/model/v1alpha2_resource_class.h @@ -27,6 +27,7 @@ typedef struct v1alpha2_resource_class_t { char *kind; // string struct v1_object_meta_t *metadata; //model struct v1alpha2_resource_class_parameters_reference_t *parameters_ref; //model + int structured_parameters; //boolean struct v1_node_selector_t *suitable_nodes; //model } v1alpha2_resource_class_t; @@ -37,6 +38,7 @@ v1alpha2_resource_class_t *v1alpha2_resource_class_create( char *kind, v1_object_meta_t *metadata, v1alpha2_resource_class_parameters_reference_t *parameters_ref, + int structured_parameters, v1_node_selector_t *suitable_nodes ); diff --git a/kubernetes/model/v1alpha2_resource_class_parameters.c b/kubernetes/model/v1alpha2_resource_class_parameters.c new file mode 100644 index 0000000..aaed344 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_class_parameters.c @@ -0,0 +1,289 @@ +#include +#include +#include +#include "v1alpha2_resource_class_parameters.h" + + + +v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters_create( + char *api_version, + list_t *filters, + v1alpha2_resource_class_parameters_reference_t *generated_from, + char *kind, + v1_object_meta_t *metadata, + list_t *vendor_parameters + ) { + v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters_local_var = malloc(sizeof(v1alpha2_resource_class_parameters_t)); + if (!v1alpha2_resource_class_parameters_local_var) { + return NULL; + } + v1alpha2_resource_class_parameters_local_var->api_version = api_version; + v1alpha2_resource_class_parameters_local_var->filters = filters; + v1alpha2_resource_class_parameters_local_var->generated_from = generated_from; + v1alpha2_resource_class_parameters_local_var->kind = kind; + v1alpha2_resource_class_parameters_local_var->metadata = metadata; + v1alpha2_resource_class_parameters_local_var->vendor_parameters = vendor_parameters; + + return v1alpha2_resource_class_parameters_local_var; +} + + +void v1alpha2_resource_class_parameters_free(v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters) { + if(NULL == v1alpha2_resource_class_parameters){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_resource_class_parameters->api_version) { + free(v1alpha2_resource_class_parameters->api_version); + v1alpha2_resource_class_parameters->api_version = NULL; + } + if (v1alpha2_resource_class_parameters->filters) { + list_ForEach(listEntry, v1alpha2_resource_class_parameters->filters) { + v1alpha2_resource_filter_free(listEntry->data); + } + list_freeList(v1alpha2_resource_class_parameters->filters); + v1alpha2_resource_class_parameters->filters = NULL; + } + if (v1alpha2_resource_class_parameters->generated_from) { + v1alpha2_resource_class_parameters_reference_free(v1alpha2_resource_class_parameters->generated_from); + v1alpha2_resource_class_parameters->generated_from = NULL; + } + if (v1alpha2_resource_class_parameters->kind) { + free(v1alpha2_resource_class_parameters->kind); + v1alpha2_resource_class_parameters->kind = NULL; + } + if (v1alpha2_resource_class_parameters->metadata) { + v1_object_meta_free(v1alpha2_resource_class_parameters->metadata); + v1alpha2_resource_class_parameters->metadata = NULL; + } + if (v1alpha2_resource_class_parameters->vendor_parameters) { + list_ForEach(listEntry, v1alpha2_resource_class_parameters->vendor_parameters) { + v1alpha2_vendor_parameters_free(listEntry->data); + } + list_freeList(v1alpha2_resource_class_parameters->vendor_parameters); + v1alpha2_resource_class_parameters->vendor_parameters = NULL; + } + free(v1alpha2_resource_class_parameters); +} + +cJSON *v1alpha2_resource_class_parameters_convertToJSON(v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_resource_class_parameters->api_version + if(v1alpha2_resource_class_parameters->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1alpha2_resource_class_parameters->api_version) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_class_parameters->filters + if(v1alpha2_resource_class_parameters->filters) { + cJSON *filters = cJSON_AddArrayToObject(item, "filters"); + if(filters == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *filtersListEntry; + if (v1alpha2_resource_class_parameters->filters) { + list_ForEach(filtersListEntry, v1alpha2_resource_class_parameters->filters) { + cJSON *itemLocal = v1alpha2_resource_filter_convertToJSON(filtersListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(filters, itemLocal); + } + } + } + + + // v1alpha2_resource_class_parameters->generated_from + if(v1alpha2_resource_class_parameters->generated_from) { + cJSON *generated_from_local_JSON = v1alpha2_resource_class_parameters_reference_convertToJSON(v1alpha2_resource_class_parameters->generated_from); + if(generated_from_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "generatedFrom", generated_from_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_resource_class_parameters->kind + if(v1alpha2_resource_class_parameters->kind) { + if(cJSON_AddStringToObject(item, "kind", v1alpha2_resource_class_parameters->kind) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_class_parameters->metadata + if(v1alpha2_resource_class_parameters->metadata) { + cJSON *metadata_local_JSON = v1_object_meta_convertToJSON(v1alpha2_resource_class_parameters->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_resource_class_parameters->vendor_parameters + if(v1alpha2_resource_class_parameters->vendor_parameters) { + cJSON *vendor_parameters = cJSON_AddArrayToObject(item, "vendorParameters"); + if(vendor_parameters == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *vendor_parametersListEntry; + if (v1alpha2_resource_class_parameters->vendor_parameters) { + list_ForEach(vendor_parametersListEntry, v1alpha2_resource_class_parameters->vendor_parameters) { + cJSON *itemLocal = v1alpha2_vendor_parameters_convertToJSON(vendor_parametersListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(vendor_parameters, itemLocal); + } + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters_parseFromJSON(cJSON *v1alpha2_resource_class_parametersJSON){ + + v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters_local_var = NULL; + + // define the local list for v1alpha2_resource_class_parameters->filters + list_t *filtersList = NULL; + + // define the local variable for v1alpha2_resource_class_parameters->generated_from + v1alpha2_resource_class_parameters_reference_t *generated_from_local_nonprim = NULL; + + // define the local variable for v1alpha2_resource_class_parameters->metadata + v1_object_meta_t *metadata_local_nonprim = NULL; + + // define the local list for v1alpha2_resource_class_parameters->vendor_parameters + list_t *vendor_parametersList = NULL; + + // v1alpha2_resource_class_parameters->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parametersJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1alpha2_resource_class_parameters->filters + cJSON *filters = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parametersJSON, "filters"); + if (filters) { + cJSON *filters_local_nonprimitive = NULL; + if(!cJSON_IsArray(filters)){ + goto end; //nonprimitive container + } + + filtersList = list_createList(); + + cJSON_ArrayForEach(filters_local_nonprimitive,filters ) + { + if(!cJSON_IsObject(filters_local_nonprimitive)){ + goto end; + } + v1alpha2_resource_filter_t *filtersItem = v1alpha2_resource_filter_parseFromJSON(filters_local_nonprimitive); + + list_addElement(filtersList, filtersItem); + } + } + + // v1alpha2_resource_class_parameters->generated_from + cJSON *generated_from = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parametersJSON, "generatedFrom"); + if (generated_from) { + generated_from_local_nonprim = v1alpha2_resource_class_parameters_reference_parseFromJSON(generated_from); //nonprimitive + } + + // v1alpha2_resource_class_parameters->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parametersJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1alpha2_resource_class_parameters->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parametersJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_object_meta_parseFromJSON(metadata); //nonprimitive + } + + // v1alpha2_resource_class_parameters->vendor_parameters + cJSON *vendor_parameters = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parametersJSON, "vendorParameters"); + if (vendor_parameters) { + cJSON *vendor_parameters_local_nonprimitive = NULL; + if(!cJSON_IsArray(vendor_parameters)){ + goto end; //nonprimitive container + } + + vendor_parametersList = list_createList(); + + cJSON_ArrayForEach(vendor_parameters_local_nonprimitive,vendor_parameters ) + { + if(!cJSON_IsObject(vendor_parameters_local_nonprimitive)){ + goto end; + } + v1alpha2_vendor_parameters_t *vendor_parametersItem = v1alpha2_vendor_parameters_parseFromJSON(vendor_parameters_local_nonprimitive); + + list_addElement(vendor_parametersList, vendor_parametersItem); + } + } + + + v1alpha2_resource_class_parameters_local_var = v1alpha2_resource_class_parameters_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + filters ? filtersList : NULL, + generated_from ? generated_from_local_nonprim : NULL, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL, + vendor_parameters ? vendor_parametersList : NULL + ); + + return v1alpha2_resource_class_parameters_local_var; +end: + if (filtersList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, filtersList) { + v1alpha2_resource_filter_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(filtersList); + filtersList = NULL; + } + if (generated_from_local_nonprim) { + v1alpha2_resource_class_parameters_reference_free(generated_from_local_nonprim); + generated_from_local_nonprim = NULL; + } + if (metadata_local_nonprim) { + v1_object_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + if (vendor_parametersList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, vendor_parametersList) { + v1alpha2_vendor_parameters_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(vendor_parametersList); + vendor_parametersList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_resource_class_parameters.h b/kubernetes/model/v1alpha2_resource_class_parameters.h new file mode 100644 index 0000000..bff7afd --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_class_parameters.h @@ -0,0 +1,51 @@ +/* + * v1alpha2_resource_class_parameters.h + * + * ResourceClassParameters defines resource requests for a ResourceClass in an in-tree format understood by Kubernetes. + */ + +#ifndef _v1alpha2_resource_class_parameters_H_ +#define _v1alpha2_resource_class_parameters_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_resource_class_parameters_t v1alpha2_resource_class_parameters_t; + +#include "v1_object_meta.h" +#include "v1alpha2_resource_class_parameters_reference.h" +#include "v1alpha2_resource_filter.h" +#include "v1alpha2_vendor_parameters.h" + + + +typedef struct v1alpha2_resource_class_parameters_t { + char *api_version; // string + list_t *filters; //nonprimitive container + struct v1alpha2_resource_class_parameters_reference_t *generated_from; //model + char *kind; // string + struct v1_object_meta_t *metadata; //model + list_t *vendor_parameters; //nonprimitive container + +} v1alpha2_resource_class_parameters_t; + +v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters_create( + char *api_version, + list_t *filters, + v1alpha2_resource_class_parameters_reference_t *generated_from, + char *kind, + v1_object_meta_t *metadata, + list_t *vendor_parameters +); + +void v1alpha2_resource_class_parameters_free(v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters); + +v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters_parseFromJSON(cJSON *v1alpha2_resource_class_parametersJSON); + +cJSON *v1alpha2_resource_class_parameters_convertToJSON(v1alpha2_resource_class_parameters_t *v1alpha2_resource_class_parameters); + +#endif /* _v1alpha2_resource_class_parameters_H_ */ + diff --git a/kubernetes/model/v1alpha2_resource_class_parameters_list.c b/kubernetes/model/v1alpha2_resource_class_parameters_list.c new file mode 100644 index 0000000..3eb18cb --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_class_parameters_list.c @@ -0,0 +1,197 @@ +#include +#include +#include +#include "v1alpha2_resource_class_parameters_list.h" + + + +v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata + ) { + v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list_local_var = malloc(sizeof(v1alpha2_resource_class_parameters_list_t)); + if (!v1alpha2_resource_class_parameters_list_local_var) { + return NULL; + } + v1alpha2_resource_class_parameters_list_local_var->api_version = api_version; + v1alpha2_resource_class_parameters_list_local_var->items = items; + v1alpha2_resource_class_parameters_list_local_var->kind = kind; + v1alpha2_resource_class_parameters_list_local_var->metadata = metadata; + + return v1alpha2_resource_class_parameters_list_local_var; +} + + +void v1alpha2_resource_class_parameters_list_free(v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list) { + if(NULL == v1alpha2_resource_class_parameters_list){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_resource_class_parameters_list->api_version) { + free(v1alpha2_resource_class_parameters_list->api_version); + v1alpha2_resource_class_parameters_list->api_version = NULL; + } + if (v1alpha2_resource_class_parameters_list->items) { + list_ForEach(listEntry, v1alpha2_resource_class_parameters_list->items) { + v1alpha2_resource_class_parameters_free(listEntry->data); + } + list_freeList(v1alpha2_resource_class_parameters_list->items); + v1alpha2_resource_class_parameters_list->items = NULL; + } + if (v1alpha2_resource_class_parameters_list->kind) { + free(v1alpha2_resource_class_parameters_list->kind); + v1alpha2_resource_class_parameters_list->kind = NULL; + } + if (v1alpha2_resource_class_parameters_list->metadata) { + v1_list_meta_free(v1alpha2_resource_class_parameters_list->metadata); + v1alpha2_resource_class_parameters_list->metadata = NULL; + } + free(v1alpha2_resource_class_parameters_list); +} + +cJSON *v1alpha2_resource_class_parameters_list_convertToJSON(v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_resource_class_parameters_list->api_version + if(v1alpha2_resource_class_parameters_list->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1alpha2_resource_class_parameters_list->api_version) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_class_parameters_list->items + if (!v1alpha2_resource_class_parameters_list->items) { + goto fail; + } + cJSON *items = cJSON_AddArrayToObject(item, "items"); + if(items == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *itemsListEntry; + if (v1alpha2_resource_class_parameters_list->items) { + list_ForEach(itemsListEntry, v1alpha2_resource_class_parameters_list->items) { + cJSON *itemLocal = v1alpha2_resource_class_parameters_convertToJSON(itemsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(items, itemLocal); + } + } + + + // v1alpha2_resource_class_parameters_list->kind + if(v1alpha2_resource_class_parameters_list->kind) { + if(cJSON_AddStringToObject(item, "kind", v1alpha2_resource_class_parameters_list->kind) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_class_parameters_list->metadata + if(v1alpha2_resource_class_parameters_list->metadata) { + cJSON *metadata_local_JSON = v1_list_meta_convertToJSON(v1alpha2_resource_class_parameters_list->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list_parseFromJSON(cJSON *v1alpha2_resource_class_parameters_listJSON){ + + v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list_local_var = NULL; + + // define the local list for v1alpha2_resource_class_parameters_list->items + list_t *itemsList = NULL; + + // define the local variable for v1alpha2_resource_class_parameters_list->metadata + v1_list_meta_t *metadata_local_nonprim = NULL; + + // v1alpha2_resource_class_parameters_list->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parameters_listJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1alpha2_resource_class_parameters_list->items + cJSON *items = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parameters_listJSON, "items"); + if (!items) { + goto end; + } + + + cJSON *items_local_nonprimitive = NULL; + if(!cJSON_IsArray(items)){ + goto end; //nonprimitive container + } + + itemsList = list_createList(); + + cJSON_ArrayForEach(items_local_nonprimitive,items ) + { + if(!cJSON_IsObject(items_local_nonprimitive)){ + goto end; + } + v1alpha2_resource_class_parameters_t *itemsItem = v1alpha2_resource_class_parameters_parseFromJSON(items_local_nonprimitive); + + list_addElement(itemsList, itemsItem); + } + + // v1alpha2_resource_class_parameters_list->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parameters_listJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1alpha2_resource_class_parameters_list->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_class_parameters_listJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_list_meta_parseFromJSON(metadata); //nonprimitive + } + + + v1alpha2_resource_class_parameters_list_local_var = v1alpha2_resource_class_parameters_list_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + itemsList, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL + ); + + return v1alpha2_resource_class_parameters_list_local_var; +end: + if (itemsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, itemsList) { + v1alpha2_resource_class_parameters_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(itemsList); + itemsList = NULL; + } + if (metadata_local_nonprim) { + v1_list_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_resource_class_parameters_list.h b/kubernetes/model/v1alpha2_resource_class_parameters_list.h new file mode 100644 index 0000000..525c075 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_class_parameters_list.h @@ -0,0 +1,45 @@ +/* + * v1alpha2_resource_class_parameters_list.h + * + * ResourceClassParametersList is a collection of ResourceClassParameters. + */ + +#ifndef _v1alpha2_resource_class_parameters_list_H_ +#define _v1alpha2_resource_class_parameters_list_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_resource_class_parameters_list_t v1alpha2_resource_class_parameters_list_t; + +#include "v1_list_meta.h" +#include "v1alpha2_resource_class_parameters.h" + + + +typedef struct v1alpha2_resource_class_parameters_list_t { + char *api_version; // string + list_t *items; //nonprimitive container + char *kind; // string + struct v1_list_meta_t *metadata; //model + +} v1alpha2_resource_class_parameters_list_t; + +v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata +); + +void v1alpha2_resource_class_parameters_list_free(v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list); + +v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list_parseFromJSON(cJSON *v1alpha2_resource_class_parameters_listJSON); + +cJSON *v1alpha2_resource_class_parameters_list_convertToJSON(v1alpha2_resource_class_parameters_list_t *v1alpha2_resource_class_parameters_list); + +#endif /* _v1alpha2_resource_class_parameters_list_H_ */ + diff --git a/kubernetes/model/v1alpha2_resource_filter.c b/kubernetes/model/v1alpha2_resource_filter.c new file mode 100644 index 0000000..a707e17 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_filter.c @@ -0,0 +1,106 @@ +#include +#include +#include +#include "v1alpha2_resource_filter.h" + + + +v1alpha2_resource_filter_t *v1alpha2_resource_filter_create( + char *driver_name, + v1alpha2_named_resources_filter_t *named_resources + ) { + v1alpha2_resource_filter_t *v1alpha2_resource_filter_local_var = malloc(sizeof(v1alpha2_resource_filter_t)); + if (!v1alpha2_resource_filter_local_var) { + return NULL; + } + v1alpha2_resource_filter_local_var->driver_name = driver_name; + v1alpha2_resource_filter_local_var->named_resources = named_resources; + + return v1alpha2_resource_filter_local_var; +} + + +void v1alpha2_resource_filter_free(v1alpha2_resource_filter_t *v1alpha2_resource_filter) { + if(NULL == v1alpha2_resource_filter){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_resource_filter->driver_name) { + free(v1alpha2_resource_filter->driver_name); + v1alpha2_resource_filter->driver_name = NULL; + } + if (v1alpha2_resource_filter->named_resources) { + v1alpha2_named_resources_filter_free(v1alpha2_resource_filter->named_resources); + v1alpha2_resource_filter->named_resources = NULL; + } + free(v1alpha2_resource_filter); +} + +cJSON *v1alpha2_resource_filter_convertToJSON(v1alpha2_resource_filter_t *v1alpha2_resource_filter) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_resource_filter->driver_name + if(v1alpha2_resource_filter->driver_name) { + if(cJSON_AddStringToObject(item, "driverName", v1alpha2_resource_filter->driver_name) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_filter->named_resources + if(v1alpha2_resource_filter->named_resources) { + cJSON *named_resources_local_JSON = v1alpha2_named_resources_filter_convertToJSON(v1alpha2_resource_filter->named_resources); + if(named_resources_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "namedResources", named_resources_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_resource_filter_t *v1alpha2_resource_filter_parseFromJSON(cJSON *v1alpha2_resource_filterJSON){ + + v1alpha2_resource_filter_t *v1alpha2_resource_filter_local_var = NULL; + + // define the local variable for v1alpha2_resource_filter->named_resources + v1alpha2_named_resources_filter_t *named_resources_local_nonprim = NULL; + + // v1alpha2_resource_filter->driver_name + cJSON *driver_name = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_filterJSON, "driverName"); + if (driver_name) { + if(!cJSON_IsString(driver_name) && !cJSON_IsNull(driver_name)) + { + goto end; //String + } + } + + // v1alpha2_resource_filter->named_resources + cJSON *named_resources = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_filterJSON, "namedResources"); + if (named_resources) { + named_resources_local_nonprim = v1alpha2_named_resources_filter_parseFromJSON(named_resources); //nonprimitive + } + + + v1alpha2_resource_filter_local_var = v1alpha2_resource_filter_create ( + driver_name && !cJSON_IsNull(driver_name) ? strdup(driver_name->valuestring) : NULL, + named_resources ? named_resources_local_nonprim : NULL + ); + + return v1alpha2_resource_filter_local_var; +end: + if (named_resources_local_nonprim) { + v1alpha2_named_resources_filter_free(named_resources_local_nonprim); + named_resources_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_resource_filter.h b/kubernetes/model/v1alpha2_resource_filter.h new file mode 100644 index 0000000..b7423fa --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_filter.h @@ -0,0 +1,40 @@ +/* + * v1alpha2_resource_filter.h + * + * ResourceFilter is a filter for resources from one particular driver. + */ + +#ifndef _v1alpha2_resource_filter_H_ +#define _v1alpha2_resource_filter_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_resource_filter_t v1alpha2_resource_filter_t; + +#include "v1alpha2_named_resources_filter.h" + + + +typedef struct v1alpha2_resource_filter_t { + char *driver_name; // string + struct v1alpha2_named_resources_filter_t *named_resources; //model + +} v1alpha2_resource_filter_t; + +v1alpha2_resource_filter_t *v1alpha2_resource_filter_create( + char *driver_name, + v1alpha2_named_resources_filter_t *named_resources +); + +void v1alpha2_resource_filter_free(v1alpha2_resource_filter_t *v1alpha2_resource_filter); + +v1alpha2_resource_filter_t *v1alpha2_resource_filter_parseFromJSON(cJSON *v1alpha2_resource_filterJSON); + +cJSON *v1alpha2_resource_filter_convertToJSON(v1alpha2_resource_filter_t *v1alpha2_resource_filter); + +#endif /* _v1alpha2_resource_filter_H_ */ + diff --git a/kubernetes/model/v1alpha2_resource_handle.c b/kubernetes/model/v1alpha2_resource_handle.c index 65cbf9a..c35df0d 100644 --- a/kubernetes/model/v1alpha2_resource_handle.c +++ b/kubernetes/model/v1alpha2_resource_handle.c @@ -7,7 +7,8 @@ v1alpha2_resource_handle_t *v1alpha2_resource_handle_create( char *data, - char *driver_name + char *driver_name, + v1alpha2_structured_resource_handle_t *structured_data ) { v1alpha2_resource_handle_t *v1alpha2_resource_handle_local_var = malloc(sizeof(v1alpha2_resource_handle_t)); if (!v1alpha2_resource_handle_local_var) { @@ -15,6 +16,7 @@ v1alpha2_resource_handle_t *v1alpha2_resource_handle_create( } v1alpha2_resource_handle_local_var->data = data; v1alpha2_resource_handle_local_var->driver_name = driver_name; + v1alpha2_resource_handle_local_var->structured_data = structured_data; return v1alpha2_resource_handle_local_var; } @@ -33,6 +35,10 @@ void v1alpha2_resource_handle_free(v1alpha2_resource_handle_t *v1alpha2_resource free(v1alpha2_resource_handle->driver_name); v1alpha2_resource_handle->driver_name = NULL; } + if (v1alpha2_resource_handle->structured_data) { + v1alpha2_structured_resource_handle_free(v1alpha2_resource_handle->structured_data); + v1alpha2_resource_handle->structured_data = NULL; + } free(v1alpha2_resource_handle); } @@ -54,6 +60,19 @@ cJSON *v1alpha2_resource_handle_convertToJSON(v1alpha2_resource_handle_t *v1alph } } + + // v1alpha2_resource_handle->structured_data + if(v1alpha2_resource_handle->structured_data) { + cJSON *structured_data_local_JSON = v1alpha2_structured_resource_handle_convertToJSON(v1alpha2_resource_handle->structured_data); + if(structured_data_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "structuredData", structured_data_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + return item; fail: if (item) { @@ -66,6 +85,9 @@ v1alpha2_resource_handle_t *v1alpha2_resource_handle_parseFromJSON(cJSON *v1alph v1alpha2_resource_handle_t *v1alpha2_resource_handle_local_var = NULL; + // define the local variable for v1alpha2_resource_handle->structured_data + v1alpha2_structured_resource_handle_t *structured_data_local_nonprim = NULL; + // v1alpha2_resource_handle->data cJSON *data = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_handleJSON, "data"); if (data) { @@ -84,14 +106,25 @@ v1alpha2_resource_handle_t *v1alpha2_resource_handle_parseFromJSON(cJSON *v1alph } } + // v1alpha2_resource_handle->structured_data + cJSON *structured_data = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_handleJSON, "structuredData"); + if (structured_data) { + structured_data_local_nonprim = v1alpha2_structured_resource_handle_parseFromJSON(structured_data); //nonprimitive + } + v1alpha2_resource_handle_local_var = v1alpha2_resource_handle_create ( data && !cJSON_IsNull(data) ? strdup(data->valuestring) : NULL, - driver_name && !cJSON_IsNull(driver_name) ? strdup(driver_name->valuestring) : NULL + driver_name && !cJSON_IsNull(driver_name) ? strdup(driver_name->valuestring) : NULL, + structured_data ? structured_data_local_nonprim : NULL ); return v1alpha2_resource_handle_local_var; end: + if (structured_data_local_nonprim) { + v1alpha2_structured_resource_handle_free(structured_data_local_nonprim); + structured_data_local_nonprim = NULL; + } return NULL; } diff --git a/kubernetes/model/v1alpha2_resource_handle.h b/kubernetes/model/v1alpha2_resource_handle.h index 141f071..132b75b 100644 --- a/kubernetes/model/v1alpha2_resource_handle.h +++ b/kubernetes/model/v1alpha2_resource_handle.h @@ -15,18 +15,21 @@ typedef struct v1alpha2_resource_handle_t v1alpha2_resource_handle_t; +#include "v1alpha2_structured_resource_handle.h" typedef struct v1alpha2_resource_handle_t { char *data; // string char *driver_name; // string + struct v1alpha2_structured_resource_handle_t *structured_data; //model } v1alpha2_resource_handle_t; v1alpha2_resource_handle_t *v1alpha2_resource_handle_create( char *data, - char *driver_name + char *driver_name, + v1alpha2_structured_resource_handle_t *structured_data ); void v1alpha2_resource_handle_free(v1alpha2_resource_handle_t *v1alpha2_resource_handle); diff --git a/kubernetes/model/v1alpha2_resource_request.c b/kubernetes/model/v1alpha2_resource_request.c new file mode 100644 index 0000000..e8deb99 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_request.c @@ -0,0 +1,109 @@ +#include +#include +#include +#include "v1alpha2_resource_request.h" + + + +v1alpha2_resource_request_t *v1alpha2_resource_request_create( + v1alpha2_named_resources_request_t *named_resources, + object_t *vendor_parameters + ) { + v1alpha2_resource_request_t *v1alpha2_resource_request_local_var = malloc(sizeof(v1alpha2_resource_request_t)); + if (!v1alpha2_resource_request_local_var) { + return NULL; + } + v1alpha2_resource_request_local_var->named_resources = named_resources; + v1alpha2_resource_request_local_var->vendor_parameters = vendor_parameters; + + return v1alpha2_resource_request_local_var; +} + + +void v1alpha2_resource_request_free(v1alpha2_resource_request_t *v1alpha2_resource_request) { + if(NULL == v1alpha2_resource_request){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_resource_request->named_resources) { + v1alpha2_named_resources_request_free(v1alpha2_resource_request->named_resources); + v1alpha2_resource_request->named_resources = NULL; + } + if (v1alpha2_resource_request->vendor_parameters) { + object_free(v1alpha2_resource_request->vendor_parameters); + v1alpha2_resource_request->vendor_parameters = NULL; + } + free(v1alpha2_resource_request); +} + +cJSON *v1alpha2_resource_request_convertToJSON(v1alpha2_resource_request_t *v1alpha2_resource_request) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_resource_request->named_resources + if(v1alpha2_resource_request->named_resources) { + cJSON *named_resources_local_JSON = v1alpha2_named_resources_request_convertToJSON(v1alpha2_resource_request->named_resources); + if(named_resources_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "namedResources", named_resources_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_resource_request->vendor_parameters + if(v1alpha2_resource_request->vendor_parameters) { + cJSON *vendor_parameters_object = object_convertToJSON(v1alpha2_resource_request->vendor_parameters); + if(vendor_parameters_object == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "vendorParameters", vendor_parameters_object); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_resource_request_t *v1alpha2_resource_request_parseFromJSON(cJSON *v1alpha2_resource_requestJSON){ + + v1alpha2_resource_request_t *v1alpha2_resource_request_local_var = NULL; + + // define the local variable for v1alpha2_resource_request->named_resources + v1alpha2_named_resources_request_t *named_resources_local_nonprim = NULL; + + // v1alpha2_resource_request->named_resources + cJSON *named_resources = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_requestJSON, "namedResources"); + if (named_resources) { + named_resources_local_nonprim = v1alpha2_named_resources_request_parseFromJSON(named_resources); //nonprimitive + } + + // v1alpha2_resource_request->vendor_parameters + cJSON *vendor_parameters = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_requestJSON, "vendorParameters"); + object_t *vendor_parameters_local_object = NULL; + if (vendor_parameters) { + vendor_parameters_local_object = object_parseFromJSON(vendor_parameters); //object + } + + + v1alpha2_resource_request_local_var = v1alpha2_resource_request_create ( + named_resources ? named_resources_local_nonprim : NULL, + vendor_parameters ? vendor_parameters_local_object : NULL + ); + + return v1alpha2_resource_request_local_var; +end: + if (named_resources_local_nonprim) { + v1alpha2_named_resources_request_free(named_resources_local_nonprim); + named_resources_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_resource_request.h b/kubernetes/model/v1alpha2_resource_request.h new file mode 100644 index 0000000..589e5ed --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_request.h @@ -0,0 +1,41 @@ +/* + * v1alpha2_resource_request.h + * + * ResourceRequest is a request for resources from one particular driver. + */ + +#ifndef _v1alpha2_resource_request_H_ +#define _v1alpha2_resource_request_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_resource_request_t v1alpha2_resource_request_t; + +#include "object.h" +#include "v1alpha2_named_resources_request.h" + + + +typedef struct v1alpha2_resource_request_t { + struct v1alpha2_named_resources_request_t *named_resources; //model + object_t *vendor_parameters; //object + +} v1alpha2_resource_request_t; + +v1alpha2_resource_request_t *v1alpha2_resource_request_create( + v1alpha2_named_resources_request_t *named_resources, + object_t *vendor_parameters +); + +void v1alpha2_resource_request_free(v1alpha2_resource_request_t *v1alpha2_resource_request); + +v1alpha2_resource_request_t *v1alpha2_resource_request_parseFromJSON(cJSON *v1alpha2_resource_requestJSON); + +cJSON *v1alpha2_resource_request_convertToJSON(v1alpha2_resource_request_t *v1alpha2_resource_request); + +#endif /* _v1alpha2_resource_request_H_ */ + diff --git a/kubernetes/model/v1alpha2_resource_slice.c b/kubernetes/model/v1alpha2_resource_slice.c new file mode 100644 index 0000000..0984bb0 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_slice.c @@ -0,0 +1,215 @@ +#include +#include +#include +#include "v1alpha2_resource_slice.h" + + + +v1alpha2_resource_slice_t *v1alpha2_resource_slice_create( + char *api_version, + char *driver_name, + char *kind, + v1_object_meta_t *metadata, + v1alpha2_named_resources_resources_t *named_resources, + char *node_name + ) { + v1alpha2_resource_slice_t *v1alpha2_resource_slice_local_var = malloc(sizeof(v1alpha2_resource_slice_t)); + if (!v1alpha2_resource_slice_local_var) { + return NULL; + } + v1alpha2_resource_slice_local_var->api_version = api_version; + v1alpha2_resource_slice_local_var->driver_name = driver_name; + v1alpha2_resource_slice_local_var->kind = kind; + v1alpha2_resource_slice_local_var->metadata = metadata; + v1alpha2_resource_slice_local_var->named_resources = named_resources; + v1alpha2_resource_slice_local_var->node_name = node_name; + + return v1alpha2_resource_slice_local_var; +} + + +void v1alpha2_resource_slice_free(v1alpha2_resource_slice_t *v1alpha2_resource_slice) { + if(NULL == v1alpha2_resource_slice){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_resource_slice->api_version) { + free(v1alpha2_resource_slice->api_version); + v1alpha2_resource_slice->api_version = NULL; + } + if (v1alpha2_resource_slice->driver_name) { + free(v1alpha2_resource_slice->driver_name); + v1alpha2_resource_slice->driver_name = NULL; + } + if (v1alpha2_resource_slice->kind) { + free(v1alpha2_resource_slice->kind); + v1alpha2_resource_slice->kind = NULL; + } + if (v1alpha2_resource_slice->metadata) { + v1_object_meta_free(v1alpha2_resource_slice->metadata); + v1alpha2_resource_slice->metadata = NULL; + } + if (v1alpha2_resource_slice->named_resources) { + v1alpha2_named_resources_resources_free(v1alpha2_resource_slice->named_resources); + v1alpha2_resource_slice->named_resources = NULL; + } + if (v1alpha2_resource_slice->node_name) { + free(v1alpha2_resource_slice->node_name); + v1alpha2_resource_slice->node_name = NULL; + } + free(v1alpha2_resource_slice); +} + +cJSON *v1alpha2_resource_slice_convertToJSON(v1alpha2_resource_slice_t *v1alpha2_resource_slice) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_resource_slice->api_version + if(v1alpha2_resource_slice->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1alpha2_resource_slice->api_version) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_slice->driver_name + if (!v1alpha2_resource_slice->driver_name) { + goto fail; + } + if(cJSON_AddStringToObject(item, "driverName", v1alpha2_resource_slice->driver_name) == NULL) { + goto fail; //String + } + + + // v1alpha2_resource_slice->kind + if(v1alpha2_resource_slice->kind) { + if(cJSON_AddStringToObject(item, "kind", v1alpha2_resource_slice->kind) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_slice->metadata + if(v1alpha2_resource_slice->metadata) { + cJSON *metadata_local_JSON = v1_object_meta_convertToJSON(v1alpha2_resource_slice->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_resource_slice->named_resources + if(v1alpha2_resource_slice->named_resources) { + cJSON *named_resources_local_JSON = v1alpha2_named_resources_resources_convertToJSON(v1alpha2_resource_slice->named_resources); + if(named_resources_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "namedResources", named_resources_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_resource_slice->node_name + if(v1alpha2_resource_slice->node_name) { + if(cJSON_AddStringToObject(item, "nodeName", v1alpha2_resource_slice->node_name) == NULL) { + goto fail; //String + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_resource_slice_t *v1alpha2_resource_slice_parseFromJSON(cJSON *v1alpha2_resource_sliceJSON){ + + v1alpha2_resource_slice_t *v1alpha2_resource_slice_local_var = NULL; + + // define the local variable for v1alpha2_resource_slice->metadata + v1_object_meta_t *metadata_local_nonprim = NULL; + + // define the local variable for v1alpha2_resource_slice->named_resources + v1alpha2_named_resources_resources_t *named_resources_local_nonprim = NULL; + + // v1alpha2_resource_slice->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_sliceJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1alpha2_resource_slice->driver_name + cJSON *driver_name = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_sliceJSON, "driverName"); + if (!driver_name) { + goto end; + } + + + if(!cJSON_IsString(driver_name)) + { + goto end; //String + } + + // v1alpha2_resource_slice->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_sliceJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1alpha2_resource_slice->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_sliceJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_object_meta_parseFromJSON(metadata); //nonprimitive + } + + // v1alpha2_resource_slice->named_resources + cJSON *named_resources = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_sliceJSON, "namedResources"); + if (named_resources) { + named_resources_local_nonprim = v1alpha2_named_resources_resources_parseFromJSON(named_resources); //nonprimitive + } + + // v1alpha2_resource_slice->node_name + cJSON *node_name = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_sliceJSON, "nodeName"); + if (node_name) { + if(!cJSON_IsString(node_name) && !cJSON_IsNull(node_name)) + { + goto end; //String + } + } + + + v1alpha2_resource_slice_local_var = v1alpha2_resource_slice_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + strdup(driver_name->valuestring), + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL, + named_resources ? named_resources_local_nonprim : NULL, + node_name && !cJSON_IsNull(node_name) ? strdup(node_name->valuestring) : NULL + ); + + return v1alpha2_resource_slice_local_var; +end: + if (metadata_local_nonprim) { + v1_object_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + if (named_resources_local_nonprim) { + v1alpha2_named_resources_resources_free(named_resources_local_nonprim); + named_resources_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_resource_slice.h b/kubernetes/model/v1alpha2_resource_slice.h new file mode 100644 index 0000000..a8313b1 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_slice.h @@ -0,0 +1,49 @@ +/* + * v1alpha2_resource_slice.h + * + * ResourceSlice provides information about available resources on individual nodes. + */ + +#ifndef _v1alpha2_resource_slice_H_ +#define _v1alpha2_resource_slice_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_resource_slice_t v1alpha2_resource_slice_t; + +#include "v1_object_meta.h" +#include "v1alpha2_named_resources_resources.h" + + + +typedef struct v1alpha2_resource_slice_t { + char *api_version; // string + char *driver_name; // string + char *kind; // string + struct v1_object_meta_t *metadata; //model + struct v1alpha2_named_resources_resources_t *named_resources; //model + char *node_name; // string + +} v1alpha2_resource_slice_t; + +v1alpha2_resource_slice_t *v1alpha2_resource_slice_create( + char *api_version, + char *driver_name, + char *kind, + v1_object_meta_t *metadata, + v1alpha2_named_resources_resources_t *named_resources, + char *node_name +); + +void v1alpha2_resource_slice_free(v1alpha2_resource_slice_t *v1alpha2_resource_slice); + +v1alpha2_resource_slice_t *v1alpha2_resource_slice_parseFromJSON(cJSON *v1alpha2_resource_sliceJSON); + +cJSON *v1alpha2_resource_slice_convertToJSON(v1alpha2_resource_slice_t *v1alpha2_resource_slice); + +#endif /* _v1alpha2_resource_slice_H_ */ + diff --git a/kubernetes/model/v1alpha2_resource_slice_list.c b/kubernetes/model/v1alpha2_resource_slice_list.c new file mode 100644 index 0000000..a003e00 --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_slice_list.c @@ -0,0 +1,197 @@ +#include +#include +#include +#include "v1alpha2_resource_slice_list.h" + + + +v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata + ) { + v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list_local_var = malloc(sizeof(v1alpha2_resource_slice_list_t)); + if (!v1alpha2_resource_slice_list_local_var) { + return NULL; + } + v1alpha2_resource_slice_list_local_var->api_version = api_version; + v1alpha2_resource_slice_list_local_var->items = items; + v1alpha2_resource_slice_list_local_var->kind = kind; + v1alpha2_resource_slice_list_local_var->metadata = metadata; + + return v1alpha2_resource_slice_list_local_var; +} + + +void v1alpha2_resource_slice_list_free(v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list) { + if(NULL == v1alpha2_resource_slice_list){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_resource_slice_list->api_version) { + free(v1alpha2_resource_slice_list->api_version); + v1alpha2_resource_slice_list->api_version = NULL; + } + if (v1alpha2_resource_slice_list->items) { + list_ForEach(listEntry, v1alpha2_resource_slice_list->items) { + v1alpha2_resource_slice_free(listEntry->data); + } + list_freeList(v1alpha2_resource_slice_list->items); + v1alpha2_resource_slice_list->items = NULL; + } + if (v1alpha2_resource_slice_list->kind) { + free(v1alpha2_resource_slice_list->kind); + v1alpha2_resource_slice_list->kind = NULL; + } + if (v1alpha2_resource_slice_list->metadata) { + v1_list_meta_free(v1alpha2_resource_slice_list->metadata); + v1alpha2_resource_slice_list->metadata = NULL; + } + free(v1alpha2_resource_slice_list); +} + +cJSON *v1alpha2_resource_slice_list_convertToJSON(v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_resource_slice_list->api_version + if(v1alpha2_resource_slice_list->api_version) { + if(cJSON_AddStringToObject(item, "apiVersion", v1alpha2_resource_slice_list->api_version) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_slice_list->items + if (!v1alpha2_resource_slice_list->items) { + goto fail; + } + cJSON *items = cJSON_AddArrayToObject(item, "items"); + if(items == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *itemsListEntry; + if (v1alpha2_resource_slice_list->items) { + list_ForEach(itemsListEntry, v1alpha2_resource_slice_list->items) { + cJSON *itemLocal = v1alpha2_resource_slice_convertToJSON(itemsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(items, itemLocal); + } + } + + + // v1alpha2_resource_slice_list->kind + if(v1alpha2_resource_slice_list->kind) { + if(cJSON_AddStringToObject(item, "kind", v1alpha2_resource_slice_list->kind) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_resource_slice_list->metadata + if(v1alpha2_resource_slice_list->metadata) { + cJSON *metadata_local_JSON = v1_list_meta_convertToJSON(v1alpha2_resource_slice_list->metadata); + if(metadata_local_JSON == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "metadata", metadata_local_JSON); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list_parseFromJSON(cJSON *v1alpha2_resource_slice_listJSON){ + + v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list_local_var = NULL; + + // define the local list for v1alpha2_resource_slice_list->items + list_t *itemsList = NULL; + + // define the local variable for v1alpha2_resource_slice_list->metadata + v1_list_meta_t *metadata_local_nonprim = NULL; + + // v1alpha2_resource_slice_list->api_version + cJSON *api_version = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_slice_listJSON, "apiVersion"); + if (api_version) { + if(!cJSON_IsString(api_version) && !cJSON_IsNull(api_version)) + { + goto end; //String + } + } + + // v1alpha2_resource_slice_list->items + cJSON *items = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_slice_listJSON, "items"); + if (!items) { + goto end; + } + + + cJSON *items_local_nonprimitive = NULL; + if(!cJSON_IsArray(items)){ + goto end; //nonprimitive container + } + + itemsList = list_createList(); + + cJSON_ArrayForEach(items_local_nonprimitive,items ) + { + if(!cJSON_IsObject(items_local_nonprimitive)){ + goto end; + } + v1alpha2_resource_slice_t *itemsItem = v1alpha2_resource_slice_parseFromJSON(items_local_nonprimitive); + + list_addElement(itemsList, itemsItem); + } + + // v1alpha2_resource_slice_list->kind + cJSON *kind = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_slice_listJSON, "kind"); + if (kind) { + if(!cJSON_IsString(kind) && !cJSON_IsNull(kind)) + { + goto end; //String + } + } + + // v1alpha2_resource_slice_list->metadata + cJSON *metadata = cJSON_GetObjectItemCaseSensitive(v1alpha2_resource_slice_listJSON, "metadata"); + if (metadata) { + metadata_local_nonprim = v1_list_meta_parseFromJSON(metadata); //nonprimitive + } + + + v1alpha2_resource_slice_list_local_var = v1alpha2_resource_slice_list_create ( + api_version && !cJSON_IsNull(api_version) ? strdup(api_version->valuestring) : NULL, + itemsList, + kind && !cJSON_IsNull(kind) ? strdup(kind->valuestring) : NULL, + metadata ? metadata_local_nonprim : NULL + ); + + return v1alpha2_resource_slice_list_local_var; +end: + if (itemsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, itemsList) { + v1alpha2_resource_slice_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(itemsList); + itemsList = NULL; + } + if (metadata_local_nonprim) { + v1_list_meta_free(metadata_local_nonprim); + metadata_local_nonprim = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_resource_slice_list.h b/kubernetes/model/v1alpha2_resource_slice_list.h new file mode 100644 index 0000000..20a98ac --- /dev/null +++ b/kubernetes/model/v1alpha2_resource_slice_list.h @@ -0,0 +1,45 @@ +/* + * v1alpha2_resource_slice_list.h + * + * ResourceSliceList is a collection of ResourceSlices. + */ + +#ifndef _v1alpha2_resource_slice_list_H_ +#define _v1alpha2_resource_slice_list_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_resource_slice_list_t v1alpha2_resource_slice_list_t; + +#include "v1_list_meta.h" +#include "v1alpha2_resource_slice.h" + + + +typedef struct v1alpha2_resource_slice_list_t { + char *api_version; // string + list_t *items; //nonprimitive container + char *kind; // string + struct v1_list_meta_t *metadata; //model + +} v1alpha2_resource_slice_list_t; + +v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list_create( + char *api_version, + list_t *items, + char *kind, + v1_list_meta_t *metadata +); + +void v1alpha2_resource_slice_list_free(v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list); + +v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list_parseFromJSON(cJSON *v1alpha2_resource_slice_listJSON); + +cJSON *v1alpha2_resource_slice_list_convertToJSON(v1alpha2_resource_slice_list_t *v1alpha2_resource_slice_list); + +#endif /* _v1alpha2_resource_slice_list_H_ */ + diff --git a/kubernetes/model/v1alpha2_structured_resource_handle.c b/kubernetes/model/v1alpha2_structured_resource_handle.c new file mode 100644 index 0000000..ef7a43f --- /dev/null +++ b/kubernetes/model/v1alpha2_structured_resource_handle.c @@ -0,0 +1,194 @@ +#include +#include +#include +#include "v1alpha2_structured_resource_handle.h" + + + +v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle_create( + char *node_name, + list_t *results, + object_t *vendor_claim_parameters, + object_t *vendor_class_parameters + ) { + v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle_local_var = malloc(sizeof(v1alpha2_structured_resource_handle_t)); + if (!v1alpha2_structured_resource_handle_local_var) { + return NULL; + } + v1alpha2_structured_resource_handle_local_var->node_name = node_name; + v1alpha2_structured_resource_handle_local_var->results = results; + v1alpha2_structured_resource_handle_local_var->vendor_claim_parameters = vendor_claim_parameters; + v1alpha2_structured_resource_handle_local_var->vendor_class_parameters = vendor_class_parameters; + + return v1alpha2_structured_resource_handle_local_var; +} + + +void v1alpha2_structured_resource_handle_free(v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle) { + if(NULL == v1alpha2_structured_resource_handle){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_structured_resource_handle->node_name) { + free(v1alpha2_structured_resource_handle->node_name); + v1alpha2_structured_resource_handle->node_name = NULL; + } + if (v1alpha2_structured_resource_handle->results) { + list_ForEach(listEntry, v1alpha2_structured_resource_handle->results) { + v1alpha2_driver_allocation_result_free(listEntry->data); + } + list_freeList(v1alpha2_structured_resource_handle->results); + v1alpha2_structured_resource_handle->results = NULL; + } + if (v1alpha2_structured_resource_handle->vendor_claim_parameters) { + object_free(v1alpha2_structured_resource_handle->vendor_claim_parameters); + v1alpha2_structured_resource_handle->vendor_claim_parameters = NULL; + } + if (v1alpha2_structured_resource_handle->vendor_class_parameters) { + object_free(v1alpha2_structured_resource_handle->vendor_class_parameters); + v1alpha2_structured_resource_handle->vendor_class_parameters = NULL; + } + free(v1alpha2_structured_resource_handle); +} + +cJSON *v1alpha2_structured_resource_handle_convertToJSON(v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_structured_resource_handle->node_name + if(v1alpha2_structured_resource_handle->node_name) { + if(cJSON_AddStringToObject(item, "nodeName", v1alpha2_structured_resource_handle->node_name) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_structured_resource_handle->results + if (!v1alpha2_structured_resource_handle->results) { + goto fail; + } + cJSON *results = cJSON_AddArrayToObject(item, "results"); + if(results == NULL) { + goto fail; //nonprimitive container + } + + listEntry_t *resultsListEntry; + if (v1alpha2_structured_resource_handle->results) { + list_ForEach(resultsListEntry, v1alpha2_structured_resource_handle->results) { + cJSON *itemLocal = v1alpha2_driver_allocation_result_convertToJSON(resultsListEntry->data); + if(itemLocal == NULL) { + goto fail; + } + cJSON_AddItemToArray(results, itemLocal); + } + } + + + // v1alpha2_structured_resource_handle->vendor_claim_parameters + if(v1alpha2_structured_resource_handle->vendor_claim_parameters) { + cJSON *vendor_claim_parameters_object = object_convertToJSON(v1alpha2_structured_resource_handle->vendor_claim_parameters); + if(vendor_claim_parameters_object == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "vendorClaimParameters", vendor_claim_parameters_object); + if(item->child == NULL) { + goto fail; + } + } + + + // v1alpha2_structured_resource_handle->vendor_class_parameters + if(v1alpha2_structured_resource_handle->vendor_class_parameters) { + cJSON *vendor_class_parameters_object = object_convertToJSON(v1alpha2_structured_resource_handle->vendor_class_parameters); + if(vendor_class_parameters_object == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "vendorClassParameters", vendor_class_parameters_object); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle_parseFromJSON(cJSON *v1alpha2_structured_resource_handleJSON){ + + v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle_local_var = NULL; + + // define the local list for v1alpha2_structured_resource_handle->results + list_t *resultsList = NULL; + + // v1alpha2_structured_resource_handle->node_name + cJSON *node_name = cJSON_GetObjectItemCaseSensitive(v1alpha2_structured_resource_handleJSON, "nodeName"); + if (node_name) { + if(!cJSON_IsString(node_name) && !cJSON_IsNull(node_name)) + { + goto end; //String + } + } + + // v1alpha2_structured_resource_handle->results + cJSON *results = cJSON_GetObjectItemCaseSensitive(v1alpha2_structured_resource_handleJSON, "results"); + if (!results) { + goto end; + } + + + cJSON *results_local_nonprimitive = NULL; + if(!cJSON_IsArray(results)){ + goto end; //nonprimitive container + } + + resultsList = list_createList(); + + cJSON_ArrayForEach(results_local_nonprimitive,results ) + { + if(!cJSON_IsObject(results_local_nonprimitive)){ + goto end; + } + v1alpha2_driver_allocation_result_t *resultsItem = v1alpha2_driver_allocation_result_parseFromJSON(results_local_nonprimitive); + + list_addElement(resultsList, resultsItem); + } + + // v1alpha2_structured_resource_handle->vendor_claim_parameters + cJSON *vendor_claim_parameters = cJSON_GetObjectItemCaseSensitive(v1alpha2_structured_resource_handleJSON, "vendorClaimParameters"); + object_t *vendor_claim_parameters_local_object = NULL; + if (vendor_claim_parameters) { + vendor_claim_parameters_local_object = object_parseFromJSON(vendor_claim_parameters); //object + } + + // v1alpha2_structured_resource_handle->vendor_class_parameters + cJSON *vendor_class_parameters = cJSON_GetObjectItemCaseSensitive(v1alpha2_structured_resource_handleJSON, "vendorClassParameters"); + object_t *vendor_class_parameters_local_object = NULL; + if (vendor_class_parameters) { + vendor_class_parameters_local_object = object_parseFromJSON(vendor_class_parameters); //object + } + + + v1alpha2_structured_resource_handle_local_var = v1alpha2_structured_resource_handle_create ( + node_name && !cJSON_IsNull(node_name) ? strdup(node_name->valuestring) : NULL, + resultsList, + vendor_claim_parameters ? vendor_claim_parameters_local_object : NULL, + vendor_class_parameters ? vendor_class_parameters_local_object : NULL + ); + + return v1alpha2_structured_resource_handle_local_var; +end: + if (resultsList) { + listEntry_t *listEntry = NULL; + list_ForEach(listEntry, resultsList) { + v1alpha2_driver_allocation_result_free(listEntry->data); + listEntry->data = NULL; + } + list_freeList(resultsList); + resultsList = NULL; + } + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_structured_resource_handle.h b/kubernetes/model/v1alpha2_structured_resource_handle.h new file mode 100644 index 0000000..dc8e483 --- /dev/null +++ b/kubernetes/model/v1alpha2_structured_resource_handle.h @@ -0,0 +1,45 @@ +/* + * v1alpha2_structured_resource_handle.h + * + * StructuredResourceHandle is the in-tree representation of the allocation result. + */ + +#ifndef _v1alpha2_structured_resource_handle_H_ +#define _v1alpha2_structured_resource_handle_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_structured_resource_handle_t v1alpha2_structured_resource_handle_t; + +#include "object.h" +#include "v1alpha2_driver_allocation_result.h" + + + +typedef struct v1alpha2_structured_resource_handle_t { + char *node_name; // string + list_t *results; //nonprimitive container + object_t *vendor_claim_parameters; //object + object_t *vendor_class_parameters; //object + +} v1alpha2_structured_resource_handle_t; + +v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle_create( + char *node_name, + list_t *results, + object_t *vendor_claim_parameters, + object_t *vendor_class_parameters +); + +void v1alpha2_structured_resource_handle_free(v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle); + +v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle_parseFromJSON(cJSON *v1alpha2_structured_resource_handleJSON); + +cJSON *v1alpha2_structured_resource_handle_convertToJSON(v1alpha2_structured_resource_handle_t *v1alpha2_structured_resource_handle); + +#endif /* _v1alpha2_structured_resource_handle_H_ */ + diff --git a/kubernetes/model/v1alpha2_vendor_parameters.c b/kubernetes/model/v1alpha2_vendor_parameters.c new file mode 100644 index 0000000..5d6351d --- /dev/null +++ b/kubernetes/model/v1alpha2_vendor_parameters.c @@ -0,0 +1,100 @@ +#include +#include +#include +#include "v1alpha2_vendor_parameters.h" + + + +v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters_create( + char *driver_name, + object_t *parameters + ) { + v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters_local_var = malloc(sizeof(v1alpha2_vendor_parameters_t)); + if (!v1alpha2_vendor_parameters_local_var) { + return NULL; + } + v1alpha2_vendor_parameters_local_var->driver_name = driver_name; + v1alpha2_vendor_parameters_local_var->parameters = parameters; + + return v1alpha2_vendor_parameters_local_var; +} + + +void v1alpha2_vendor_parameters_free(v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters) { + if(NULL == v1alpha2_vendor_parameters){ + return ; + } + listEntry_t *listEntry; + if (v1alpha2_vendor_parameters->driver_name) { + free(v1alpha2_vendor_parameters->driver_name); + v1alpha2_vendor_parameters->driver_name = NULL; + } + if (v1alpha2_vendor_parameters->parameters) { + object_free(v1alpha2_vendor_parameters->parameters); + v1alpha2_vendor_parameters->parameters = NULL; + } + free(v1alpha2_vendor_parameters); +} + +cJSON *v1alpha2_vendor_parameters_convertToJSON(v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters) { + cJSON *item = cJSON_CreateObject(); + + // v1alpha2_vendor_parameters->driver_name + if(v1alpha2_vendor_parameters->driver_name) { + if(cJSON_AddStringToObject(item, "driverName", v1alpha2_vendor_parameters->driver_name) == NULL) { + goto fail; //String + } + } + + + // v1alpha2_vendor_parameters->parameters + if(v1alpha2_vendor_parameters->parameters) { + cJSON *parameters_object = object_convertToJSON(v1alpha2_vendor_parameters->parameters); + if(parameters_object == NULL) { + goto fail; //model + } + cJSON_AddItemToObject(item, "parameters", parameters_object); + if(item->child == NULL) { + goto fail; + } + } + + return item; +fail: + if (item) { + cJSON_Delete(item); + } + return NULL; +} + +v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters_parseFromJSON(cJSON *v1alpha2_vendor_parametersJSON){ + + v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters_local_var = NULL; + + // v1alpha2_vendor_parameters->driver_name + cJSON *driver_name = cJSON_GetObjectItemCaseSensitive(v1alpha2_vendor_parametersJSON, "driverName"); + if (driver_name) { + if(!cJSON_IsString(driver_name) && !cJSON_IsNull(driver_name)) + { + goto end; //String + } + } + + // v1alpha2_vendor_parameters->parameters + cJSON *parameters = cJSON_GetObjectItemCaseSensitive(v1alpha2_vendor_parametersJSON, "parameters"); + object_t *parameters_local_object = NULL; + if (parameters) { + parameters_local_object = object_parseFromJSON(parameters); //object + } + + + v1alpha2_vendor_parameters_local_var = v1alpha2_vendor_parameters_create ( + driver_name && !cJSON_IsNull(driver_name) ? strdup(driver_name->valuestring) : NULL, + parameters ? parameters_local_object : NULL + ); + + return v1alpha2_vendor_parameters_local_var; +end: + return NULL; + +} diff --git a/kubernetes/model/v1alpha2_vendor_parameters.h b/kubernetes/model/v1alpha2_vendor_parameters.h new file mode 100644 index 0000000..2786671 --- /dev/null +++ b/kubernetes/model/v1alpha2_vendor_parameters.h @@ -0,0 +1,40 @@ +/* + * v1alpha2_vendor_parameters.h + * + * VendorParameters are opaque parameters for one particular driver. + */ + +#ifndef _v1alpha2_vendor_parameters_H_ +#define _v1alpha2_vendor_parameters_H_ + +#include +#include "../external/cJSON.h" +#include "../include/list.h" +#include "../include/keyValuePair.h" +#include "../include/binary.h" + +typedef struct v1alpha2_vendor_parameters_t v1alpha2_vendor_parameters_t; + +#include "object.h" + + + +typedef struct v1alpha2_vendor_parameters_t { + char *driver_name; // string + object_t *parameters; //object + +} v1alpha2_vendor_parameters_t; + +v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters_create( + char *driver_name, + object_t *parameters +); + +void v1alpha2_vendor_parameters_free(v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters); + +v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters_parseFromJSON(cJSON *v1alpha2_vendor_parametersJSON); + +cJSON *v1alpha2_vendor_parameters_convertToJSON(v1alpha2_vendor_parameters_t *v1alpha2_vendor_parameters); + +#endif /* _v1alpha2_vendor_parameters_H_ */ + diff --git a/kubernetes/swagger.json b/kubernetes/swagger.json index 151406b..0dacb33 100644 --- a/kubernetes/swagger.json +++ b/kubernetes/swagger.json @@ -1,5 +1,41 @@ { "definitions": { + "v1.AuditAnnotation": { + "description": "AuditAnnotation describes how to produce an audit annotation for an API request.", + "properties": { + "key": { + "description": "key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\nThe key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: \"{ValidatingAdmissionPolicy name}/{key}\".\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded.\n\nRequired.", + "type": "string" + }, + "valueExpression": { + "description": "valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb.\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list.\n\nRequired.", + "type": "string" + } + }, + "required": [ + "key", + "valueExpression" + ], + "type": "object" + }, + "v1.ExpressionWarning": { + "description": "ExpressionWarning is a warning information that targets a specific expression.", + "properties": { + "fieldRef": { + "description": "The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is \"spec.validations[0].expression\"", + "type": "string" + }, + "warning": { + "description": "The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.", + "type": "string" + } + }, + "required": [ + "fieldRef", + "warning" + ], + "type": "object" + }, "v1.MatchCondition": { "description": "MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.", "properties": { @@ -18,6 +54,41 @@ ], "type": "object" }, + "v1.MatchResources": { + "description": "MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "properties": { + "excludeResourceRules": { + "description": "ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "items": { + "$ref": "#/definitions/v1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"MatchResources\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/v1.LabelSelector", + "description": "NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/v1.LabelSelector", + "description": "ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "resourceRules": { + "description": "ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.", + "items": { + "$ref": "#/definitions/v1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, "v1.MutatingWebhook": { "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", "properties": { @@ -26,7 +97,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "clientConfig": { "$ref": "#/definitions/admissionregistration.v1.WebhookClientConfig", @@ -37,7 +109,7 @@ "type": "string" }, "matchConditions": { - "description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\nThis is a beta feature and managed by the AdmissionWebhookMatchConditions feature gate.", + "description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped", "items": { "$ref": "#/definitions/v1.MatchCondition" }, @@ -74,7 +146,8 @@ "items": { "$ref": "#/definitions/v1.RuleWithOperations" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "sideEffects": { "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", @@ -115,6 +188,10 @@ "$ref": "#/definitions/v1.MutatingWebhook" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" } @@ -163,6 +240,95 @@ } ] }, + "v1.NamedRuleWithOperations": { + "description": "NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.", + "properties": { + "apiGroups": { + "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "apiVersions": { + "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "operations": { + "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "scope": { + "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "v1.ParamKind": { + "description": "ParamKind is a tuple of Group Kind and Version.", + "properties": { + "apiVersion": { + "description": "APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.", + "type": "string" + }, + "kind": { + "description": "Kind is the API kind the resources belong to. Required.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "v1.ParamRef": { + "description": "ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.", + "properties": { + "name": { + "description": "name is the name of the resource being referenced.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\n\nA single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields.\n\nA per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty.\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error.\n\n- If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error.", + "type": "string" + }, + "parameterNotFoundAction": { + "description": "`parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny`\n\nRequired", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/v1.LabelSelector", + "description": "selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind.\n\nIf multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset." + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, "v1.RuleWithOperations": { "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", "properties": { @@ -232,6 +398,258 @@ ], "type": "object" }, + "v1.TypeChecking": { + "description": "TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy", + "properties": { + "expressionWarnings": { + "description": "The type checking warnings for each expression.", + "items": { + "$ref": "#/definitions/v1.ExpressionWarning" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "v1.ValidatingAdmissionPolicy": { + "description": "ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicySpec", + "description": "Specification of the desired behavior of the ValidatingAdmissionPolicy." + }, + "status": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyStatus", + "description": "The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + ] + }, + "v1.ValidatingAdmissionPolicyBinding": { + "description": "ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding.\n\nThe CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBindingSpec", + "description": "Specification of the desired behavior of the ValidatingAdmissionPolicyBinding." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + ] + }, + "v1.ValidatingAdmissionPolicyBindingList": { + "description": "ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "List of PolicyBinding.", + "items": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBindingList", + "version": "v1" + } + ] + }, + "v1.ValidatingAdmissionPolicyBindingSpec": { + "description": "ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.", + "properties": { + "matchResources": { + "$ref": "#/definitions/v1.MatchResources", + "description": "MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required." + }, + "paramRef": { + "$ref": "#/definitions/v1.ParamRef", + "description": "paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param." + }, + "policyName": { + "description": "PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.", + "type": "string" + }, + "validationActions": { + "description": "validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions.\n\nFailures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n\nvalidationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action.\n\nThe supported actions values are:\n\n\"Deny\" specifies that a validation failure results in a denied request.\n\n\"Warn\" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses.\n\n\"Audit\" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]\"`\n\nClients should expect to handle additional values by ignoring any values not recognized.\n\n\"Deny\" and \"Warn\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers.\n\nRequired.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "type": "object" + }, + "v1.ValidatingAdmissionPolicyList": { + "description": "ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "List of ValidatingAdmissionPolicy.", + "items": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyList", + "version": "v1" + } + ] + }, + "v1.ValidatingAdmissionPolicySpec": { + "description": "ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.", + "properties": { + "auditAnnotations": { + "description": "auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required.", + "items": { + "$ref": "#/definitions/v1.AuditAnnotation" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "failurePolicy": { + "description": "failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\n\nA policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n\nfailurePolicy does not define how validations that evaluate to false are handled.\n\nWhen failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced.\n\nAllowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchConditions": { + "description": "MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the policy is skipped", + "items": { + "$ref": "#/definitions/v1.MatchCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "matchConstraints": { + "$ref": "#/definitions/v1.MatchResources", + "description": "MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required." + }, + "paramKind": { + "$ref": "#/definitions/v1.ParamKind", + "description": "ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null." + }, + "validations": { + "description": "Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.", + "items": { + "$ref": "#/definitions/v1.Validation" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "variables": { + "description": "Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic.", + "items": { + "$ref": "#/definitions/v1.Variable" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "v1.ValidatingAdmissionPolicyStatus": { + "description": "ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.", + "properties": { + "conditions": { + "description": "The conditions represent the latest available observations of a policy's current state.", + "items": { + "$ref": "#/definitions/v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + }, + "observedGeneration": { + "description": "The generation observed by the controller.", + "format": "int64", + "type": "integer" + }, + "typeChecking": { + "$ref": "#/definitions/v1.TypeChecking", + "description": "The results of type checking for each expression. Presence of this field indicates the completion of the type checking." + } + }, + "type": "object" + }, "v1.ValidatingWebhook": { "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", "properties": { @@ -240,7 +658,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "clientConfig": { "$ref": "#/definitions/admissionregistration.v1.WebhookClientConfig", @@ -251,7 +670,7 @@ "type": "string" }, "matchConditions": { - "description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\nThis is a beta feature and managed by the AdmissionWebhookMatchConditions feature gate.", + "description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped", "items": { "$ref": "#/definitions/v1.MatchCondition" }, @@ -284,7 +703,8 @@ "items": { "$ref": "#/definitions/v1.RuleWithOperations" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "sideEffects": { "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", @@ -325,6 +745,10 @@ "$ref": "#/definitions/v1.ValidatingWebhook" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" } @@ -373,6 +797,50 @@ } ] }, + "v1.Validation": { + "description": "Validation specifies the CEL expression which is used to apply the validation.", + "properties": { + "expression": { + "description": "Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.", + "type": "string" + }, + "message": { + "description": "Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \"failed Expression: {Expression}\".", + "type": "string" + }, + "messageExpression": { + "description": "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \"object.x must be less than max (\"+string(params.max)+\")\"", + "type": "string" + }, + "reason": { + "description": "Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\". If not set, StatusReasonInvalid is used in the response to the client.", + "type": "string" + } + }, + "required": [ + "expression" + ], + "type": "object" + }, + "v1.Variable": { + "description": "Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.", + "properties": { + "expression": { + "description": "Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.", + "type": "string" + }, + "name": { + "description": "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`", + "type": "string" + } + }, + "required": [ + "name", + "expression" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, "admissionregistration.v1.WebhookClientConfig": { "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", "properties": { @@ -1438,7 +1906,8 @@ "required": [ "type", "status", - "reason" + "reason", + "message" ], "type": "object" }, @@ -1726,6 +2195,10 @@ "$ref": "#/definitions/v1.DaemonSetCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -1962,6 +2435,10 @@ "$ref": "#/definitions/v1.DeploymentCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -2147,6 +2624,10 @@ "$ref": "#/definitions/v1.ReplicaSetCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -2394,7 +2875,8 @@ "items": { "$ref": "#/definitions/v1.PersistentVolumeClaim" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -2423,6 +2905,10 @@ "$ref": "#/definitions/v1.StatefulSetCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -2584,7 +3070,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "boundObjectRef": { "$ref": "#/definitions/v1.BoundObjectReference", @@ -2664,7 +3151,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "token": { "description": "Token is the opaque bearer token.", @@ -2681,7 +3169,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "authenticated": { "description": "Authenticated indicates that the token was associated with a known user.", @@ -2716,7 +3205,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "uid": { "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", @@ -2865,14 +3355,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "verbs": { "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -2922,28 +3414,32 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resourceNames": { "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resources": { "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "verbs": { "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -3101,7 +3597,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "nonResourceAttributes": { "$ref": "#/definitions/v1.NonResourceAttributes", @@ -3163,14 +3660,16 @@ "items": { "$ref": "#/definitions/v1.NonResourceRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resourceRules": { "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", "items": { "$ref": "#/definitions/v1.ResourceRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -4262,6 +4761,10 @@ "format": "int32", "type": "integer" }, + "managedBy": { + "description": "ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first \"/\" must be a valid subdomain as defined by RFC 1123. All characters trailing the first \"/\" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 64 characters.\n\nThis field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default).", + "type": "string" + }, "manualSelector": { "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", "type": "boolean" @@ -4288,6 +4791,10 @@ "$ref": "#/definitions/v1.LabelSelector", "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" }, + "successPolicy": { + "$ref": "#/definitions/v1.SuccessPolicy", + "description": "successPolicy specifies the policy when the Job can be declared as succeeded. If empty, the default behavior applies - the Job is declared as succeeded only when the number of succeeded pods equals to the completions. When the field is specified, it must be immutable and works only for the Indexed Jobs. Once the Job meets the SuccessPolicy, the lingering pods are terminated.\n\nThis field is alpha-level. To use this field, you must enable the `JobSuccessPolicy` feature gate (disabled by default)." + }, "suspend": { "description": "suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.", "type": "boolean" @@ -4311,7 +4818,7 @@ "description": "JobStatus represents the current state of a Job.", "properties": { "active": { - "description": "The number of pending and running pods.", + "description": "The number of pending and running pods which are not terminating (without a deletionTimestamp). The value is zero for finished jobs.", "format": "int32", "type": "integer" }, @@ -4320,12 +4827,12 @@ "type": "string" }, "completionTime": { - "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully.", + "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is set when the job finishes successfully, and only then. The value cannot be updated or removed. The value indicates the same or later point in time as the startTime field.", "format": "date-time", "type": "string" }, "conditions": { - "description": "The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "description": "The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true.\n\nA job is considered finished when it is in a terminal condition, either \"Complete\" or \"Failed\". A Job cannot have both the \"Complete\" and \"Failed\" conditions. Additionally, it cannot be in the \"Complete\" and \"FailureTarget\" conditions. The \"Complete\", \"Failed\" and \"FailureTarget\" conditions cannot be disabled.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", "items": { "$ref": "#/definitions/v1.JobCondition" }, @@ -4335,12 +4842,12 @@ "x-kubernetes-patch-strategy": "merge" }, "failed": { - "description": "The number of pods which reached phase Failed.", + "description": "The number of pods which reached phase Failed. The value increases monotonically.", "format": "int32", "type": "integer" }, "failedIndexes": { - "description": "FailedIndexes holds the failed indexes when backoffLimitPerIndex=true. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).", + "description": "FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". The set of failed indexes cannot overlap with the set of completed indexes.\n\nThis field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).", "type": "string" }, "ready": { @@ -4349,12 +4856,12 @@ "type": "integer" }, "startTime": { - "description": "Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.", + "description": "Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.\n\nOnce set, the field can only be removed when the job is suspended. The field cannot be modified while the job is unsuspended or finished.", "format": "date-time", "type": "string" }, "succeeded": { - "description": "The number of pods which reached phase Succeeded.", + "description": "The number of pods which reached phase Succeeded. The value increases monotonically for a given spec. However, it may decrease in reaction to scale down of elastic indexed jobs.", "format": "int32", "type": "integer" }, @@ -4365,7 +4872,7 @@ }, "uncountedTerminatedPods": { "$ref": "#/definitions/v1.UncountedTerminatedPods", - "description": "uncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\n\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status:\n\n1. Add the pod UID to the arrays in this field. 2. Remove the pod finalizer. 3. Remove the pod UID from the arrays while increasing the corresponding\n counter.\n\nOld jobs might not be tracked using this field, in which case the field remains null." + "description": "uncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\n\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status:\n\n1. Add the pod UID to the arrays in this field. 2. Remove the pod finalizer. 3. Remove the pod UID from the arrays while increasing the corresponding\n counter.\n\nOld jobs might not be tracked using this field, in which case the field remains null. The structure is empty for finished jobs." } }, "type": "object" @@ -4471,6 +4978,38 @@ ], "type": "object" }, + "v1.SuccessPolicy": { + "description": "SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.", + "properties": { + "rules": { + "description": "rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \"SucceededCriteriaMet\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \"Complete\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed.", + "items": { + "$ref": "#/definitions/v1.SuccessPolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "rules" + ], + "type": "object" + }, + "v1.SuccessPolicyRule": { + "description": "SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the \"succeededIndexes\" or \"succeededCount\" specified.", + "properties": { + "succeededCount": { + "description": "succeededCount specifies the minimal required size of the actual set of the succeeded indexes for the Job. When succeededCount is used along with succeededIndexes, the check is constrained only to the set of indexes specified by succeededIndexes. For example, given that succeededIndexes is \"1-4\", succeededCount is \"3\", and completed indexes are \"1\", \"3\", and \"5\", the Job isn't declared as succeeded because only \"1\" and \"3\" indexes are considered in that rules. When this field is null, this doesn't default to any value and is never evaluated at any time. When specified it needs to be a positive integer.", + "format": "int32", + "type": "integer" + }, + "succeededIndexes": { + "description": "succeededIndexes specifies the set of indexes which need to be contained in the actual set of the succeeded indexes for the Job. The list of indexes must be within 0 to \".spec.completions-1\" and must not contain duplicates. At least one element is required. The indexes are represented as intervals separated by commas. The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen. The number are listed in represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". When this field is null, this field doesn't default to any value and is never evaluated at any time.", + "type": "string" + } + }, + "type": "object" + }, "v1.UncountedTerminatedPods": { "description": "UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.", "properties": { @@ -4902,6 +5441,31 @@ }, "type": "object" }, + "v1.AppArmorProfile": { + "description": "AppArmorProfile defines a pod or container's AppArmor settings.", + "properties": { + "localhostProfile": { + "description": "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \"Localhost\".", + "type": "string" + }, + "type": { + "description": "type indicates which kind of AppArmor profile will be applied. Valid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "localhostProfile": "LocalhostProfile" + } + } + ] + }, "v1.AttachedVolume": { "description": "AttachedVolume describes a volume attached to a node", "properties": { @@ -5127,14 +5691,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "drop": { "description": "Removed capabilities", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -5147,7 +5713,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "path": { "description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", @@ -5183,7 +5750,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "path": { "description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", @@ -5354,6 +5922,10 @@ "$ref": "#/definitions/v1.ComponentCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -5458,7 +6030,7 @@ "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", "properties": { "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -5476,7 +6048,7 @@ "type": "string" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -5564,10 +6136,11 @@ "items": { "$ref": "#/definitions/v1.KeyToPath" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -5590,10 +6163,11 @@ "items": { "$ref": "#/definitions/v1.KeyToPath" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -5611,14 +6185,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "command": { "description": "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "env": { "description": "List of environment variables to set in the container. Cannot be updated.", @@ -5626,6 +6202,10 @@ "$ref": "#/definitions/v1.EnvVar" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -5634,7 +6214,8 @@ "items": { "$ref": "#/definitions/v1.EnvFromSource" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "image": { "description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", @@ -5724,6 +6305,10 @@ "$ref": "#/definitions/v1.VolumeDevice" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "devicePath" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "devicePath", "x-kubernetes-patch-strategy": "merge" }, @@ -5733,6 +6318,10 @@ "$ref": "#/definitions/v1.VolumeMount" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "mountPath", "x-kubernetes-patch-strategy": "merge" }, @@ -5754,7 +6343,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "sizeBytes": { "description": "The size of the image in bytes.", @@ -5948,6 +6538,19 @@ "state": { "$ref": "#/definitions/v1.ContainerState", "description": "State holds details about the container's current condition." + }, + "volumeMounts": { + "description": "Status of volume mounts.", + "items": { + "$ref": "#/definitions/v1.VolumeMountStatus" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" } }, "required": [ @@ -5981,7 +6584,8 @@ "items": { "$ref": "#/definitions/v1.DownwardAPIVolumeFile" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -5991,7 +6595,7 @@ "properties": { "fieldRef": { "$ref": "#/definitions/v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." + "description": "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported." }, "mode": { "description": "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", @@ -6025,7 +6629,8 @@ "items": { "$ref": "#/definitions/v1.DownwardAPIVolumeFile" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -6105,21 +6710,24 @@ "items": { "$ref": "#/definitions/v1.EndpointAddress" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "notReadyAddresses": { "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", "items": { "$ref": "#/definitions/v1.EndpointAddress" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ports": { "description": "Port numbers available on the related IP addresses.", "items": { "$ref": "#/definitions/core.v1.EndpointPort" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -6144,7 +6752,8 @@ "items": { "$ref": "#/definitions/v1.EndpointSubset" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -6260,14 +6869,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "command": { "description": "Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "env": { "description": "List of environment variables to set in the container. Cannot be updated.", @@ -6275,6 +6886,10 @@ "$ref": "#/definitions/v1.EnvVar" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -6283,7 +6898,8 @@ "items": { "$ref": "#/definitions/v1.EnvFromSource" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "image": { "description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images", @@ -6377,6 +6993,10 @@ "$ref": "#/definitions/v1.VolumeDevice" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "devicePath" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "devicePath", "x-kubernetes-patch-strategy": "merge" }, @@ -6386,6 +7006,10 @@ "$ref": "#/definitions/v1.VolumeMount" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "mountPath", "x-kubernetes-patch-strategy": "merge" }, @@ -6571,7 +7195,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -6597,14 +7222,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "wwids": { "description": "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -6811,7 +7438,8 @@ "items": { "$ref": "#/definitions/v1.HTTPHeader" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "path": { "description": "Path to access on the HTTP server.", @@ -6857,13 +7485,17 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ip": { "description": "IP address of the host file entry.", "type": "string" } }, + "required": [ + "ip" + ], "type": "object" }, "v1.HostIP": { @@ -6930,7 +7562,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", @@ -6989,7 +7622,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", @@ -7195,7 +7829,8 @@ "items": { "$ref": "#/definitions/v1.LimitRangeItem" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -7237,7 +7872,8 @@ "items": { "$ref": "#/definitions/v1.LoadBalancerIngress" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -7246,7 +7882,7 @@ "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", "properties": { "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, @@ -7414,7 +8050,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -7428,6 +8065,10 @@ "$ref": "#/definitions/v1.NamespaceCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -7497,7 +8138,8 @@ "items": { "$ref": "#/definitions/v1.PreferredSchedulingTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "requiredDuringSchedulingIgnoredDuringExecution": { "$ref": "#/definitions/v1.NodeSelector", @@ -7619,6 +8261,30 @@ } ] }, + "v1.NodeRuntimeHandler": { + "description": "NodeRuntimeHandler is a set of runtime handler information.", + "properties": { + "features": { + "$ref": "#/definitions/v1.NodeRuntimeHandlerFeatures", + "description": "Supported features." + }, + "name": { + "description": "Runtime handler name. Empty for the default runtime handler.", + "type": "string" + } + }, + "type": "object" + }, + "v1.NodeRuntimeHandlerFeatures": { + "description": "NodeRuntimeHandlerFeatures is a set of runtime features.", + "properties": { + "recursiveReadOnlyMounts": { + "description": "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.", + "type": "boolean" + } + }, + "type": "object" + }, "v1.NodeSelector": { "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", "properties": { @@ -7627,7 +8293,8 @@ "items": { "$ref": "#/definitions/v1.NodeSelectorTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -7652,7 +8319,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -7669,14 +8337,16 @@ "items": { "$ref": "#/definitions/v1.NodeSelectorRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "matchFields": { "description": "A list of node selector requirements by node's fields.", "items": { "$ref": "#/definitions/v1.NodeSelectorRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -7703,6 +8373,7 @@ "type": "string" }, "type": "array", + "x-kubernetes-list-type": "set", "x-kubernetes-patch-strategy": "merge" }, "providerID": { @@ -7714,7 +8385,8 @@ "items": { "$ref": "#/definitions/v1.Taint" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "unschedulable": { "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", @@ -7732,6 +8404,10 @@ "$ref": "#/definitions/v1.NodeAddress" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -7757,6 +8433,10 @@ "$ref": "#/definitions/v1.NodeCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -7773,7 +8453,8 @@ "items": { "$ref": "#/definitions/v1.ContainerImage" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "nodeInfo": { "$ref": "#/definitions/v1.NodeSystemInfo", @@ -7783,19 +8464,29 @@ "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", "type": "string" }, + "runtimeHandlers": { + "description": "The available runtime handlers.", + "items": { + "$ref": "#/definitions/v1.NodeRuntimeHandler" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "volumesAttached": { "description": "List of volumes that are attached to the node.", "items": { "$ref": "#/definitions/v1.AttachedVolume" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "volumesInUse": { "description": "List of attachable volumes in use (mounted) by the node.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -7995,7 +8686,7 @@ "type": "string" }, "reason": { - "description": "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", + "description": "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"Resizing\" that means the underlying persistent volume is being resized.", "type": "string" }, "status": { @@ -8054,7 +8745,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "dataSource": { "$ref": "#/definitions/v1.TypedLocalObjectReference", @@ -8077,7 +8769,7 @@ "type": "string" }, "volumeAttributesClassName": { - "description": "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + "description": "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", "type": "string" }, "volumeMode": { @@ -8099,7 +8791,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "allocatedResourceStatuses": { "additionalProperties": { @@ -8126,11 +8819,15 @@ "type": "object" }, "conditions": { - "description": "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + "description": "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", "items": { "$ref": "#/definitions/v1.PersistentVolumeClaimCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -8226,7 +8923,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "awsElasticBlockStore": { "$ref": "#/definitions/v1.AWSElasticBlockStoreVolumeSource", @@ -8302,7 +9000,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "nfs": { "$ref": "#/definitions/v1.NFSVolumeSource", @@ -8363,7 +9062,7 @@ "description": "PersistentVolumeStatus is the current status of a persistent volume.", "properties": { "lastPhaseTransitionTime": { - "description": "lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions. This is an alpha field and requires enabling PersistentVolumeLastPhaseTransitionTime feature.", + "description": "lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions. This is a beta field and requires the PersistentVolumeLastPhaseTransitionTime feature to be enabled (enabled by default).", "format": "date-time", "type": "string" }, @@ -8440,14 +9139,16 @@ "items": { "$ref": "#/definitions/v1.WeightedPodAffinityTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "requiredDuringSchedulingIgnoredDuringExecution": { "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "items": { "$ref": "#/definitions/v1.PodAffinityTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -8460,7 +9161,7 @@ "description": "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods." }, "matchLabelKeys": { - "description": "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + "description": "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", "items": { "type": "string" }, @@ -8468,7 +9169,7 @@ "x-kubernetes-list-type": "atomic" }, "mismatchLabelKeys": { - "description": "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + "description": "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", "items": { "type": "string" }, @@ -8484,7 +9185,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "topologyKey": { "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", @@ -8504,14 +9206,16 @@ "items": { "$ref": "#/definitions/v1.WeightedPodAffinityTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "requiredDuringSchedulingIgnoredDuringExecution": { "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "items": { "$ref": "#/definitions/v1.PodAffinityTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -8560,21 +9264,24 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "options": { "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", "items": { "$ref": "#/definitions/v1.PodDNSConfigOption" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "searches": { "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -8713,6 +9420,10 @@ "v1.PodSecurityContext": { "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", "properties": { + "appArmorProfile": { + "$ref": "#/definitions/v1.AppArmorProfile", + "description": "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows." + }, "fsGroup": { "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", "format": "int64", @@ -8750,14 +9461,16 @@ "format": "int64", "type": "integer" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "sysctls": { "description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", "items": { "$ref": "#/definitions/v1.Sysctl" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "windowsOptions": { "$ref": "#/definitions/v1.WindowsSecurityContextOptions", @@ -8788,6 +9501,10 @@ "$ref": "#/definitions/v1.Container" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -8809,15 +9526,23 @@ "$ref": "#/definitions/v1.EphemeralContainer" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, "hostAliases": { - "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", + "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.", "items": { "$ref": "#/definitions/v1.HostAlias" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "ip" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "ip", "x-kubernetes-patch-strategy": "merge" }, @@ -8847,6 +9572,10 @@ "$ref": "#/definitions/v1.LocalObjectReference" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -8856,6 +9585,10 @@ "$ref": "#/definitions/v1.Container" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -8873,7 +9606,7 @@ }, "os": { "$ref": "#/definitions/v1.PodOS", - "description": "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup" + "description": "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup" }, "overhead": { "additionalProperties": { @@ -8901,7 +9634,8 @@ "items": { "$ref": "#/definitions/v1.PodReadinessGate" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resourceClaims": { "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.", @@ -8929,7 +9663,7 @@ "type": "string" }, "schedulingGates": { - "description": "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\n\nThis is a beta feature enabled by the PodSchedulingReadiness feature gate.", + "description": "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.", "items": { "$ref": "#/definitions/v1.PodSchedulingGate" }, @@ -8946,7 +9680,7 @@ "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." }, "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", + "description": "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", "type": "string" }, "serviceAccountName": { @@ -8975,7 +9709,8 @@ "items": { "$ref": "#/definitions/v1.Toleration" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "topologySpreadConstraints": { "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.", @@ -8997,6 +9732,10 @@ "$ref": "#/definitions/v1.Volume" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge,retainKeys" } @@ -9015,6 +9754,10 @@ "$ref": "#/definitions/v1.PodCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -9023,14 +9766,16 @@ "items": { "$ref": "#/definitions/v1.ContainerStatus" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ephemeralContainerStatuses": { "description": "Status for any ephemeral containers that have run in this pod.", "items": { "$ref": "#/definitions/v1.ContainerStatus" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "hostIP": { "description": "hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod", @@ -9051,7 +9796,8 @@ "items": { "$ref": "#/definitions/v1.ContainerStatus" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "message": { "description": "A human readable message indicating details about why the pod is in this condition.", @@ -9075,6 +9821,10 @@ "$ref": "#/definitions/v1.PodIP" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "ip" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "ip", "x-kubernetes-patch-strategy": "merge" }, @@ -9316,7 +10066,8 @@ "items": { "$ref": "#/definitions/v1.VolumeProjection" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -9375,7 +10126,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "pool": { "description": "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", @@ -9420,7 +10172,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "pool": { "description": "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", @@ -9586,6 +10339,10 @@ "$ref": "#/definitions/v1.ReplicationControllerCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -9738,7 +10495,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -9930,7 +10688,8 @@ "items": { "$ref": "#/definitions/v1.ScopedResourceSelectorRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -9952,7 +10711,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -10038,7 +10798,7 @@ "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", "properties": { "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -10056,7 +10816,7 @@ "type": "string" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -10113,10 +10873,11 @@ "items": { "$ref": "#/definitions/v1.KeyToPath" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -10154,7 +10915,8 @@ "items": { "$ref": "#/definitions/v1.KeyToPath" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "optional": { "description": "optional field specify whether the Secret or its keys must be defined", @@ -10174,6 +10936,10 @@ "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", "type": "boolean" }, + "appArmorProfile": { + "$ref": "#/definitions/v1.AppArmorProfile", + "description": "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows." + }, "capabilities": { "$ref": "#/definitions/v1.Capabilities", "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows." @@ -10268,7 +11034,8 @@ "items": { "$ref": "#/definitions/v1.LocalObjectReference" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "kind": { "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", @@ -10284,6 +11051,10 @@ "$ref": "#/definitions/v1.ObjectReference" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" } @@ -10448,7 +11219,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "externalName": { "description": "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".", @@ -10492,7 +11264,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ports": { "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", @@ -10528,6 +11301,10 @@ "$ref": "#/definitions/v1.SessionAffinityConfig", "description": "sessionAffinityConfig contains the configurations of session affinity." }, + "trafficDistribution": { + "description": "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \"PreferClose\", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature.", + "type": "string" + }, "type": { "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", "type": "string" @@ -10735,7 +11512,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -10752,7 +11530,8 @@ "items": { "$ref": "#/definitions/v1.TopologySelectorLabelRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -10779,7 +11558,7 @@ "type": "integer" }, "minDomains": { - "description": "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.\n\nThis is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default).", + "description": "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", "format": "int32", "type": "integer" }, @@ -11010,7 +11789,7 @@ "type": "string" }, "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", "type": "string" }, "name": { @@ -11021,6 +11800,10 @@ "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", "type": "boolean" }, + "recursiveReadOnly": { + "description": "RecursiveReadOnly specifies whether read-only mounts should be handled recursively.\n\nIf ReadOnly is false, this field has no meaning and must be unspecified.\n\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason.\n\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None).\n\nIf this field is not specified, it is treated as an equivalent of Disabled.", + "type": "string" + }, "subPath": { "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", "type": "string" @@ -11036,6 +11819,32 @@ ], "type": "object" }, + "v1.VolumeMountStatus": { + "description": "VolumeMountStatus shows status of volume mounts.", + "properties": { + "mountPath": { + "description": "MountPath corresponds to the original VolumeMount.", + "type": "string" + }, + "name": { + "description": "Name corresponds to the name of the original VolumeMount.", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly corresponds to the original VolumeMount.", + "type": "boolean" + }, + "recursiveReadOnly": { + "description": "RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.", + "type": "string" + } + }, + "required": [ + "name", + "mountPath" + ], + "type": "object" + }, "v1.VolumeNodeAffinity": { "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", "properties": { @@ -12727,7 +13536,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -12955,7 +13765,8 @@ "items": { "$ref": "#/definitions/v1.IngressLoadBalancerIngress" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13108,14 +13919,16 @@ "items": { "$ref": "#/definitions/v1.NetworkPolicyPort" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "to": { "description": "to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.", "items": { "$ref": "#/definitions/v1.NetworkPolicyPeer" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13128,14 +13941,16 @@ "items": { "$ref": "#/definitions/v1.NetworkPolicyPeer" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ports": { "description": "ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", "items": { "$ref": "#/definitions/v1.NetworkPolicyPort" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13220,14 +14035,16 @@ "items": { "$ref": "#/definitions/v1.NetworkPolicyEgressRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ingress": { "description": "ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", "items": { "$ref": "#/definitions/v1.NetworkPolicyIngressRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "podSelector": { "$ref": "#/definitions/v1.LabelSelector", @@ -13238,7 +14055,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -13333,6 +14151,9 @@ "description": "ParentRef references the resource that an IPAddress is attached to. An IPAddress must reference a parent object." } }, + "required": [ + "parentRef" + ], "type": "object" }, "v1alpha1.ParentReference": { @@ -13355,6 +14176,10 @@ "type": "string" } }, + "required": [ + "resource", + "name" + ], "type": "object" }, "v1alpha1.ServiceCIDR": { @@ -13433,7 +14258,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13755,7 +14581,8 @@ "items": { "$ref": "#/definitions/v1.LabelSelector" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13784,7 +14611,8 @@ "items": { "$ref": "#/definitions/v1.PolicyRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -13820,7 +14648,8 @@ "items": { "$ref": "#/definitions/rbac.v1.Subject" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -13913,35 +14742,40 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "nonResourceURLs": { "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resourceNames": { "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resources": { "description": "Resources is a list of resources this rule applies to. '*' represents all resources.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "verbs": { "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -13969,7 +14803,8 @@ "items": { "$ref": "#/definitions/v1.PolicyRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -14005,7 +14840,8 @@ "items": { "$ref": "#/definitions/rbac.v1.Subject" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -14163,6 +14999,196 @@ }, "type": "object" }, + "v1alpha2.DriverAllocationResult": { + "description": "DriverAllocationResult contains vendor parameters and the allocation result for one request.", + "properties": { + "namedResources": { + "$ref": "#/definitions/v1alpha2.NamedResourcesAllocationResult", + "description": "NamedResources describes the allocation result when using the named resources model." + }, + "vendorRequestParameters": { + "description": "VendorRequestParameters are the per-request configuration parameters from the time that the claim was allocated.", + "type": "object" + } + }, + "type": "object" + }, + "v1alpha2.DriverRequests": { + "description": "DriverRequests describes all resources that are needed from one particular driver.", + "properties": { + "driverName": { + "description": "DriverName is the name used by the DRA driver kubelet plugin.", + "type": "string" + }, + "requests": { + "description": "Requests describes all resources that are needed from the driver.", + "items": { + "$ref": "#/definitions/v1alpha2.ResourceRequest" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "vendorParameters": { + "description": "VendorParameters are arbitrary setup parameters for all requests of the claim. They are ignored while allocating the claim.", + "type": "object" + } + }, + "type": "object" + }, + "v1alpha2.NamedResourcesAllocationResult": { + "description": "NamedResourcesAllocationResult is used in AllocationResultModel.", + "properties": { + "name": { + "description": "Name is the name of the selected resource instance.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "v1alpha2.NamedResourcesAttribute": { + "description": "NamedResourcesAttribute is a combination of an attribute name and its value.", + "properties": { + "bool": { + "description": "BoolValue is a true/false value.", + "type": "boolean" + }, + "int": { + "description": "IntValue is a 64-bit integer.", + "format": "int64", + "type": "integer" + }, + "intSlice": { + "$ref": "#/definitions/v1alpha2.NamedResourcesIntSlice", + "description": "IntSliceValue is an array of 64-bit integers." + }, + "name": { + "description": "Name is unique identifier among all resource instances managed by the driver on the node. It must be a DNS subdomain.", + "type": "string" + }, + "quantity": { + "description": "QuantityValue is a quantity.", + "type": "string" + }, + "string": { + "description": "StringValue is a string.", + "type": "string" + }, + "stringSlice": { + "$ref": "#/definitions/v1alpha2.NamedResourcesStringSlice", + "description": "StringSliceValue is an array of strings." + }, + "version": { + "description": "VersionValue is a semantic version according to semver.org spec 2.0.0.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "v1alpha2.NamedResourcesFilter": { + "description": "NamedResourcesFilter is used in ResourceFilterModel.", + "properties": { + "selector": { + "description": "Selector is a CEL expression which must evaluate to true if a resource instance is suitable. The language is as defined in https://kubernetes.io/docs/reference/using-api/cel/\n\nIn addition, for each type NamedResourcesin AttributeValue there is a map that resolves to the corresponding value of the instance under evaluation. For example:\n\n attributes.quantity[\"a\"].isGreaterThan(quantity(\"0\")) &&\n attributes.stringslice[\"b\"].isSorted()", + "type": "string" + } + }, + "required": [ + "selector" + ], + "type": "object" + }, + "v1alpha2.NamedResourcesInstance": { + "description": "NamedResourcesInstance represents one individual hardware instance that can be selected based on its attributes.", + "properties": { + "attributes": { + "description": "Attributes defines the attributes of this resource instance. The name of each attribute must be unique.", + "items": { + "$ref": "#/definitions/v1alpha2.NamedResourcesAttribute" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "name": { + "description": "Name is unique identifier among all resource instances managed by the driver on the node. It must be a DNS subdomain.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "v1alpha2.NamedResourcesIntSlice": { + "description": "NamedResourcesIntSlice contains a slice of 64-bit integers.", + "properties": { + "ints": { + "description": "Ints is the slice of 64-bit integers.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "ints" + ], + "type": "object" + }, + "v1alpha2.NamedResourcesRequest": { + "description": "NamedResourcesRequest is used in ResourceRequestModel.", + "properties": { + "selector": { + "description": "Selector is a CEL expression which must evaluate to true if a resource instance is suitable. The language is as defined in https://kubernetes.io/docs/reference/using-api/cel/\n\nIn addition, for each type NamedResourcesin AttributeValue there is a map that resolves to the corresponding value of the instance under evaluation. For example:\n\n attributes.quantity[\"a\"].isGreaterThan(quantity(\"0\")) &&\n attributes.stringslice[\"b\"].isSorted()", + "type": "string" + } + }, + "required": [ + "selector" + ], + "type": "object" + }, + "v1alpha2.NamedResourcesResources": { + "description": "NamedResourcesResources is used in ResourceModel.", + "properties": { + "instances": { + "description": "The list of all individual resources instances currently available.", + "items": { + "$ref": "#/definitions/v1alpha2.NamedResourcesInstance" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "instances" + ], + "type": "object" + }, + "v1alpha2.NamedResourcesStringSlice": { + "description": "NamedResourcesStringSlice contains a slice of strings.", + "properties": { + "strings": { + "description": "Strings is the slice of strings.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "strings" + ], + "type": "object" + }, "v1alpha2.PodSchedulingContext": { "description": "PodSchedulingContext objects hold information that is needed to schedule a Pod with ResourceClaims that use \"WaitForFirstConsumer\" allocation mode.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.", "properties": { @@ -14367,6 +15393,82 @@ } ] }, + "v1alpha2.ResourceClaimParameters": { + "description": "ResourceClaimParameters defines resource requests for a ResourceClaim in an in-tree format understood by Kubernetes.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "driverRequests": { + "description": "DriverRequests describes all resources that are needed for the allocated claim. A single claim may use resources coming from different drivers. For each driver, this array has at most one entry which then may have one or more per-driver requests.\n\nMay be empty, in which case the claim can always be allocated.", + "items": { + "$ref": "#/definitions/v1alpha2.DriverRequests" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "generatedFrom": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParametersReference", + "description": "If this object was created from some other resource, then this links back to that resource. This field is used to find the in-tree representation of the claim parameters when the parameter reference of the claim refers to some unknown type." + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ObjectMeta", + "description": "Standard object metadata" + }, + "shareable": { + "description": "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.", + "type": "boolean" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + ] + }, + "v1alpha2.ResourceClaimParametersList": { + "description": "ResourceClaimParametersList is a collection of ResourceClaimParameters.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "Items is the list of node resource capacity objects.", + "items": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ListMeta", + "description": "Standard list metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceClaimParametersList", + "version": "v1alpha2" + } + ] + }, "v1alpha2.ResourceClaimParametersReference": { "description": "ResourceClaimParametersReference contains enough information to let you locate the parameters for a ResourceClaim. The object must be in the same namespace as the ResourceClaim.", "properties": { @@ -14452,7 +15554,9 @@ "x-kubernetes-list-map-keys": [ "uid" ], - "x-kubernetes-list-type": "map" + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "uid", + "x-kubernetes-patch-strategy": "merge" } }, "type": "object" @@ -14564,6 +15668,10 @@ "$ref": "#/definitions/v1alpha2.ResourceClassParametersReference", "description": "ParametersRef references an arbitrary separate object that may hold parameters that will be used by the driver when allocating a resource that uses this class. A dynamic resource driver can distinguish between parameters stored here and and those stored in ResourceClaimSpec." }, + "structuredParameters": { + "description": "If and only if allocation of claims using this class is handled via structured parameters, then StructuredParameters must be set to true.", + "type": "boolean" + }, "suitableNodes": { "$ref": "#/definitions/v1.NodeSelector", "description": "Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a ResourceClaim that has not been allocated yet.\n\nSetting this field is optional. If null, all nodes are candidates." @@ -14616,6 +15724,86 @@ } ] }, + "v1alpha2.ResourceClassParameters": { + "description": "ResourceClassParameters defines resource requests for a ResourceClass in an in-tree format understood by Kubernetes.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "filters": { + "description": "Filters describes additional contraints that must be met when using the class.", + "items": { + "$ref": "#/definitions/v1alpha2.ResourceFilter" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "generatedFrom": { + "$ref": "#/definitions/v1alpha2.ResourceClassParametersReference", + "description": "If this object was created from some other resource, then this links back to that resource. This field is used to find the in-tree representation of the class parameters when the parameter reference of the class refers to some unknown type." + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ObjectMeta", + "description": "Standard object metadata" + }, + "vendorParameters": { + "description": "VendorParameters are arbitrary setup parameters for all claims using this class. They are ignored while allocating the claim. There must not be more than one entry per driver.", + "items": { + "$ref": "#/definitions/v1alpha2.VendorParameters" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + ] + }, + "v1alpha2.ResourceClassParametersList": { + "description": "ResourceClassParametersList is a collection of ResourceClassParameters.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "Items is the list of node resource capacity objects.", + "items": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ListMeta", + "description": "Standard list metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceClassParametersList", + "version": "v1alpha2" + } + ] + }, "v1alpha2.ResourceClassParametersReference": { "description": "ResourceClassParametersReference contains enough information to let you locate the parameters for a ResourceClass.", "properties": { @@ -14642,6 +15830,20 @@ ], "type": "object" }, + "v1alpha2.ResourceFilter": { + "description": "ResourceFilter is a filter for resources from one particular driver.", + "properties": { + "driverName": { + "description": "DriverName is the name used by the DRA driver kubelet plugin.", + "type": "string" + }, + "namedResources": { + "$ref": "#/definitions/v1alpha2.NamedResourcesFilter", + "description": "NamedResources describes a resource filter using the named resources model." + } + }, + "type": "object" + }, "v1alpha2.ResourceHandle": { "description": "ResourceHandle holds opaque resource data for processing by a specific kubelet plugin.", "properties": { @@ -14652,6 +15854,142 @@ "driverName": { "description": "DriverName specifies the name of the resource driver whose kubelet plugin should be invoked to process this ResourceHandle's data once it lands on a node. This may differ from the DriverName set in ResourceClaimStatus this ResourceHandle is embedded in.", "type": "string" + }, + "structuredData": { + "$ref": "#/definitions/v1alpha2.StructuredResourceHandle", + "description": "If StructuredData is set, then it needs to be used instead of Data." + } + }, + "type": "object" + }, + "v1alpha2.ResourceRequest": { + "description": "ResourceRequest is a request for resources from one particular driver.", + "properties": { + "namedResources": { + "$ref": "#/definitions/v1alpha2.NamedResourcesRequest", + "description": "NamedResources describes a request for resources with the named resources model." + }, + "vendorParameters": { + "description": "VendorParameters are arbitrary setup parameters for the requested resource. They are ignored while allocating a claim.", + "type": "object" + } + }, + "type": "object" + }, + "v1alpha2.ResourceSlice": { + "description": "ResourceSlice provides information about available resources on individual nodes.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "driverName": { + "description": "DriverName identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.", + "type": "string" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ObjectMeta", + "description": "Standard object metadata" + }, + "namedResources": { + "$ref": "#/definitions/v1alpha2.NamedResourcesResources", + "description": "NamedResources describes available resources using the named resources model." + }, + "nodeName": { + "description": "NodeName identifies the node which provides the resources if they are local to a node.\n\nA field selector can be used to list only ResourceSlice objects with a certain node name.", + "type": "string" + } + }, + "required": [ + "driverName" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + ] + }, + "v1alpha2.ResourceSliceList": { + "description": "ResourceSliceList is a collection of ResourceSlices.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "Items is the list of node resource capacity objects.", + "items": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ListMeta", + "description": "Standard list metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceSliceList", + "version": "v1alpha2" + } + ] + }, + "v1alpha2.StructuredResourceHandle": { + "description": "StructuredResourceHandle is the in-tree representation of the allocation result.", + "properties": { + "nodeName": { + "description": "NodeName is the name of the node providing the necessary resources if the resources are local to a node.", + "type": "string" + }, + "results": { + "description": "Results lists all allocated driver resources.", + "items": { + "$ref": "#/definitions/v1alpha2.DriverAllocationResult" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "vendorClaimParameters": { + "description": "VendorClaimParameters are the per-claim configuration parameters from the resource claim parameters at the time that the claim was allocated.", + "type": "object" + }, + "vendorClassParameters": { + "description": "VendorClassParameters are the per-claim configuration parameters from the resource class at the time that the claim was allocated.", + "type": "object" + } + }, + "required": [ + "results" + ], + "type": "object" + }, + "v1alpha2.VendorParameters": { + "description": "VendorParameters are opaque parameters for one particular driver.", + "properties": { + "driverName": { + "description": "DriverName is the name used by the DRA driver kubelet plugin.", + "type": "string" + }, + "parameters": { + "description": "Parameters can be arbitrary setup parameters. They are ignored while allocating a claim.", + "type": "object" } }, "type": "object" @@ -14811,11 +16149,11 @@ "type": "boolean" }, "fsGroupPolicy": { - "description": "fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\n\nThis field is immutable.\n\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.", + "description": "fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\n\nThis field was immutable in Kubernetes < 1.29 and now is mutable.\n\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.", "type": "string" }, "podInfoOnMount": { - "description": "podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\n\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\nThe following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\n\nThis field is immutable.", + "description": "podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\n\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\nThe following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\n\nThis field was immutable in Kubernetes < 1.29 and now is mutable.", "type": "boolean" }, "requiresRepublish": { @@ -14901,7 +16239,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -14954,6 +16293,10 @@ "$ref": "#/definitions/v1.CSINodeDriver" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" } @@ -15019,11 +16362,7 @@ "items": { "$ref": "#/definitions/v1.CSIStorageCapacity" }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "name" - ], - "x-kubernetes-list-type": "map" + "type": "array" }, "kind": { "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", @@ -15078,7 +16417,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "parameters": { "additionalProperties": { @@ -15401,6 +16741,169 @@ } ] }, + "v1alpha1.GroupVersionResource": { + "description": "The names of the group, the version, and the resource.", + "properties": { + "group": { + "description": "The name of the group.", + "type": "string" + }, + "resource": { + "description": "The name of the resource.", + "type": "string" + }, + "version": { + "description": "The name of the version.", + "type": "string" + } + }, + "type": "object" + }, + "v1alpha1.MigrationCondition": { + "description": "Describes the state of a migration at a certain point.", + "properties": { + "lastUpdateTime": { + "description": "The last time this condition was updated.", + "format": "date-time", + "type": "string" + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of the condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "v1alpha1.StorageVersionMigration": { + "description": "StorageVersionMigration represents a migration of stored data to the latest storage version.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ObjectMeta", + "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigrationSpec", + "description": "Specification of the migration." + }, + "status": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigrationStatus", + "description": "Status of the migration." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + ] + }, + "v1alpha1.StorageVersionMigrationList": { + "description": "StorageVersionMigrationList is a collection of storage version migrations.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "Items is the list of StorageVersionMigration", + "items": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigrationList", + "version": "v1alpha1" + } + ] + }, + "v1alpha1.StorageVersionMigrationSpec": { + "description": "Spec of the storage version migration.", + "properties": { + "continueToken": { + "description": "The token used in the list options to get the next chunk of objects to migrate. When the .status.conditions indicates the migration is \"Running\", users can use this token to check the progress of the migration.", + "type": "string" + }, + "resource": { + "$ref": "#/definitions/v1alpha1.GroupVersionResource", + "description": "The resource that is being migrated. The migrator sends requests to the endpoint serving the resource. Immutable." + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "v1alpha1.StorageVersionMigrationStatus": { + "description": "Status of the storage version migration.", + "properties": { + "conditions": { + "description": "The latest available observations of the migration's current state.", + "items": { + "$ref": "#/definitions/v1alpha1.MigrationCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "resourceVersion": { + "description": "ResourceVersion to compare with the GC cache for performing the migration. This is the current resource version of given group, version and resource when kube-controller-manager first observes this StorageVersionMigration resource.", + "type": "string" + } + }, + "type": "object" + }, "v1.CustomResourceColumnDefinition": { "description": "CustomResourceColumnDefinition specifies a column for server side printing.", "properties": { @@ -15564,7 +17067,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "kind": { "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", @@ -15583,7 +17087,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "singular": { "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", @@ -15624,7 +17129,8 @@ "items": { "$ref": "#/definitions/v1.CustomResourceDefinitionVersion" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -15658,7 +17164,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -15671,7 +17178,8 @@ "items": { "$ref": "#/definitions/v1.CustomResourceColumnDefinition" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "deprecated": { "description": "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", @@ -15689,6 +17197,14 @@ "$ref": "#/definitions/v1.CustomResourceValidation", "description": "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource." }, + "selectableFields": { + "description": "selectableFields specifies paths to fields that may be used as field selectors. A maximum of 8 selectable fields are allowed. See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors", + "items": { + "$ref": "#/definitions/v1.SelectableField" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "served": { "description": "served is a flag enabling/disabling this version from being served via REST APIs", "type": "boolean" @@ -15788,13 +17304,15 @@ "items": { "$ref": "#/definitions/v1.JSONSchemaProps" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "anyOf": { "items": { "$ref": "#/definitions/v1.JSONSchemaProps" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "default": { "description": "default is a default value for undefined object fields. Defaulting is a beta feature under the CustomResourceDefaulting feature gate. Defaulting requires spec.preserveUnknownFields to be false.", @@ -15821,7 +17339,8 @@ "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.", "type": "object" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "example": { "description": "JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil.", @@ -15893,7 +17412,8 @@ "items": { "$ref": "#/definitions/v1.JSONSchemaProps" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "pattern": { "type": "string" @@ -15914,7 +17434,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "title": { "type": "string" @@ -15938,7 +17459,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "x-kubernetes-list-type": { "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", @@ -15968,6 +17490,19 @@ }, "type": "object" }, + "v1.SelectableField": { + "description": "SelectableField specifies the JSON path of a field that may be used with field selectors.", + "properties": { + "jsonPath": { + "description": "jsonPath is a simple JSON path which is evaluated against each custom resource to produce a field selector value. Only JSON paths without the array notation are allowed. Must point to a field of type string, boolean or integer. Types with enum values and strings with formats are allowed. If jsonPath refers to absent field in a resource, the jsonPath evaluates to an empty string. Must not point to metdata fields. Required.", + "type": "string" + } + }, + "required": [ + "jsonPath" + ], + "type": "object" + }, "apiextensions.v1.ServiceReference": { "description": "ServiceReference holds a reference to Service.legacy.k8s.io", "properties": { @@ -16059,7 +17594,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16091,14 +17627,16 @@ "items": { "$ref": "#/definitions/v1.ServerAddressByClientCIDR" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "versions": { "description": "versions are the versions supported in this group.", "items": { "$ref": "#/definitions/v1.GroupVersionForDiscovery" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16126,7 +17664,8 @@ "items": { "$ref": "#/definitions/v1.APIGroup" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "kind": { "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", @@ -16153,7 +17692,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "group": { "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", @@ -16176,7 +17716,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "singularName": { "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", @@ -16227,7 +17768,8 @@ "items": { "$ref": "#/definitions/v1.APIResource" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16259,14 +17801,16 @@ "items": { "$ref": "#/definitions/v1.ServerAddressByClientCIDR" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "versions": { "description": "versions are the api versions that are available.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16333,7 +17877,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "gracePeriodSeconds": { "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", @@ -16648,6 +18193,11 @@ "group": "storage.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" + }, + { + "group": "storagemigration.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" } ] }, @@ -16677,7 +18227,8 @@ "items": { "$ref": "#/definitions/v1.LabelSelectorRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "matchLabels": { "additionalProperties": { @@ -16706,7 +18257,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16804,6 +18356,7 @@ "type": "string" }, "type": "array", + "x-kubernetes-list-type": "set", "x-kubernetes-patch-strategy": "merge" }, "generateName": { @@ -16827,7 +18380,8 @@ "items": { "$ref": "#/definitions/v1.ManagedFieldsEntry" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", @@ -16843,6 +18397,10 @@ "$ref": "#/definitions/v1.OwnerReference" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "uid" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "uid", "x-kubernetes-patch-strategy": "merge" }, @@ -16944,7 +18502,8 @@ }, "details": { "$ref": "#/definitions/v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." + "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.", + "x-kubernetes-list-type": "atomic" }, "kind": { "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", @@ -17007,7 +18566,8 @@ "items": { "$ref": "#/definitions/v1.StatusCause" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "group": { "description": "The group attribute of the resource associated with the status StatusReason.", @@ -17339,6 +18899,11 @@ "group": "storage.k8s.io", "kind": "WatchEvent", "version": "v1beta1" + }, + { + "group": "storagemigration.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" } ] }, @@ -17573,7 +19138,7 @@ }, "info": { "title": "Kubernetes", - "version": "release-1.29" + "version": "release-1.30" }, "paths": { "/api/": { @@ -37685,6 +39250,1453 @@ "x-codegen-request-body-name": "body" } }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ValidatingAdmissionPolicy", + "operationId": "deleteCollectionValidatingAdmissionPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ValidatingAdmissionPolicy", + "operationId": "listValidatingAdmissionPolicy", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ValidatingAdmissionPolicy", + "operationId": "createValidatingAdmissionPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ValidatingAdmissionPolicy", + "operationId": "deleteValidatingAdmissionPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ValidatingAdmissionPolicy", + "operationId": "readValidatingAdmissionPolicy", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ValidatingAdmissionPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ValidatingAdmissionPolicy", + "operationId": "patchValidatingAdmissionPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ValidatingAdmissionPolicy", + "operationId": "replaceValidatingAdmissionPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified ValidatingAdmissionPolicy", + "operationId": "readValidatingAdmissionPolicyStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ValidatingAdmissionPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified ValidatingAdmissionPolicy", + "operationId": "patchValidatingAdmissionPolicyStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified ValidatingAdmissionPolicy", + "operationId": "replaceValidatingAdmissionPolicyStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ValidatingAdmissionPolicyBinding", + "operationId": "deleteCollectionValidatingAdmissionPolicyBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ValidatingAdmissionPolicyBinding", + "operationId": "listValidatingAdmissionPolicyBinding", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ValidatingAdmissionPolicyBinding", + "operationId": "createValidatingAdmissionPolicyBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ValidatingAdmissionPolicyBinding", + "operationId": "deleteValidatingAdmissionPolicyBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ValidatingAdmissionPolicyBinding", + "operationId": "readValidatingAdmissionPolicyBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ValidatingAdmissionPolicyBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ValidatingAdmissionPolicyBinding", + "operationId": "patchValidatingAdmissionPolicyBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ValidatingAdmissionPolicyBinding", + "operationId": "replaceValidatingAdmissionPolicyBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1.ValidatingAdmissionPolicyBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + }, + "x-codegen-request-body-name": "body" + } + }, "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations": { "delete": { "consumes": [ @@ -38473,6 +41485,346 @@ } ] }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies/{name}": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ValidatingAdmissionPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings/{name}": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ValidatingAdmissionPolicyBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations": { "parameters": [ { @@ -79350,6 +82702,640 @@ "x-codegen-request-body-name": "body" } }, + "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ResourceClaimParameters", + "operationId": "deleteCollectionNamespacedResourceClaimParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceClaimParameters", + "operationId": "listNamespacedResourceClaimParameters", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParametersList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create ResourceClaimParameters", + "operationId": "createNamespacedResourceClaimParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete ResourceClaimParameters", + "operationId": "deleteNamespacedResourceClaimParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ResourceClaimParameters", + "operationId": "readNamespacedResourceClaimParameters", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "name of the ResourceClaimParameters", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ResourceClaimParameters", + "operationId": "patchNamespacedResourceClaimParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ResourceClaimParameters", + "operationId": "replaceNamespacedResourceClaimParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + } + }, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims": { "delete": { "consumes": [ @@ -80837,6 +84823,640 @@ "x-codegen-request-body-name": "body" } }, + "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ResourceClassParameters", + "operationId": "deleteCollectionNamespacedResourceClassParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceClassParameters", + "operationId": "listNamespacedResourceClassParameters", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParametersList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create ResourceClassParameters", + "operationId": "createNamespacedResourceClassParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete ResourceClassParameters", + "operationId": "deleteNamespacedResourceClassParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ResourceClassParameters", + "operationId": "readNamespacedResourceClassParameters", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "name of the ResourceClassParameters", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ResourceClassParameters", + "operationId": "patchNamespacedResourceClassParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ResourceClassParameters", + "operationId": "replaceNamespacedResourceClassParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + } + }, "/apis/resource.k8s.io/v1alpha2/podschedulingcontexts": { "get": { "consumes": [ @@ -80955,6 +85575,124 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/resourceclaimparameters": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceClaimParameters", + "operationId": "listResourceClaimParametersForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClaimParametersList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, "/apis/resource.k8s.io/v1alpha2/resourceclaims": { "get": { "consumes": [ @@ -81809,6 +86547,742 @@ "x-codegen-request-body-name": "body" } }, + "/apis/resource.k8s.io/v1alpha2/resourceclassparameters": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceClassParameters", + "operationId": "listResourceClassParametersForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceClassParametersList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/resourceslices": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ResourceSlice", + "operationId": "deleteCollectionResourceSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceSlice", + "operationId": "listResourceSlice", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSliceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ResourceSlice", + "operationId": "createResourceSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/resource.k8s.io/v1alpha2/resourceslices/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ResourceSlice", + "operationId": "deleteResourceSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ResourceSlice", + "operationId": "readResourceSlice", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "name of the ResourceSlice", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ResourceSlice", + "operationId": "patchResourceSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ResourceSlice", + "operationId": "replaceResourceSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + }, + "x-codegen-request-body-name": "body" + } + }, "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/podschedulingcontexts": { "parameters": [ { @@ -81995,6 +87469,192 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclaimparameters": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclaimparameters/{name}": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ResourceClaimParameters", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclaims": { "parameters": [ { @@ -82367,6 +88027,192 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclassparameters": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclassparameters/{name}": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ResourceClassParameters", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "object name and auth scope, such as for teams and projects", + "in": "path", + "name": "namespace", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, "/apis/resource.k8s.io/v1alpha2/watch/podschedulingcontexts": { "parameters": [ { @@ -82448,6 +88294,87 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/watch/resourceclaimparameters": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, "/apis/resource.k8s.io/v1alpha2/watch/resourceclaims": { "parameters": [ { @@ -82780,6 +88707,257 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/watch/resourceclassparameters": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/watch/resourceslices": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/watch/resourceslices/{name}": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the ResourceSlice", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, "/apis/scheduling.k8s.io/": { "get": { "consumes": [ @@ -88903,6 +95081,1071 @@ } ] }, + "/apis/storagemigration.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration" + ] + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getAPIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ] + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of StorageVersionMigration", + "operationId": "deleteCollectionStorageVersionMigration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind StorageVersionMigration", + "operationId": "listStorageVersionMigration", + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigrationList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a StorageVersionMigration", + "operationId": "createStorageVersionMigration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a StorageVersionMigration", + "operationId": "deleteStorageVersionMigration", + "parameters": [ + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/v1.DeleteOptions" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", + "in": "query", + "name": "gracePeriodSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the \"orphan\" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.", + "in": "query", + "name": "orphanDependents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy. Acceptable values are: 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the dependents in the background; 'Foreground' - a cascading policy that deletes all dependents in the foreground.", + "in": "query", + "name": "propagationPolicy", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + }, + "x-codegen-request-body-name": "body" + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified StorageVersionMigration", + "operationId": "readStorageVersionMigration", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "description": "name of the StorageVersionMigration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified StorageVersionMigration", + "operationId": "patchStorageVersionMigration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + }, + "x-codegen-request-body-name": "body" + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified StorageVersionMigration", + "operationId": "replaceStorageVersionMigration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified StorageVersionMigration", + "operationId": "readStorageVersionMigrationStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "description": "name of the StorageVersionMigration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified StorageVersionMigration", + "operationId": "patchStorageVersionMigrationStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "description": "Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.", + "type": "object" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint. This field is required for apply requests (application/apply-patch) but optional for non-apply patch types (JsonPatch, MergePatch, StrategicMergePatch).", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "description": "Force is going to \"force\" Apply requests. It means user will re-acquire conflicting fields owned by other people. Force flag must be unset for non-apply patch requests.", + "in": "query", + "name": "force", + "type": "boolean", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + }, + "x-codegen-request-body-name": "body" + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified StorageVersionMigration", + "operationId": "replaceStorageVersionMigrationStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldManager is a name associated with the actor or entity that is making these changes. The value must be less than or 128 characters long, and only contain printable characters, as defined by https://golang.org/pkg/unicode/#IsPrint.", + "in": "query", + "name": "fieldManager", + "type": "string", + "uniqueItems": true + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + }, + "x-codegen-request-body-name": "body" + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/watch/storageversionmigrations": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, + "/apis/storagemigration.k8s.io/v1alpha1/watch/storageversionmigrations/{name}": { + "parameters": [ + { + "description": "allowWatchBookmarks requests watch events with type \"BOOKMARK\". Servers that do not implement bookmarks may ignore this flag and bookmarks are sent at the server's discretion. Clients should not assume bookmarks are returned at any specific interval, nor may they assume the server will send any BOOKMARK event during a session. If this is not a watch, this field is ignored.", + "in": "query", + "name": "allowWatchBookmarks", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "The continue option should be set when retrieving more results from the server. Since this value is server defined, clients may only use the continue value from a previous query result with identical query parameters (except for the value of continue) and the server may reject a continue value it does not recognize. If the specified continue value is no longer valid whether due to expiration (generally five to fifteen minutes) or a configuration change on the server, the server will respond with a 410 ResourceExpired error together with a continue token. If the client needs a consistent list, it must restart their list without the continue field. Otherwise, the client may send another list request with the token received with the 410 error, the server will respond with a list starting from the next key, but from the latest snapshot, which is inconsistent from the previous list results - objects that are created, modified, or deleted after the first list request will be included in the response, as long as their keys are after the \"next key\".\n\nThis field is not supported when watch is true. Clients may start a watch from the last resourceVersion value returned by the server and not miss any modifications.", + "in": "query", + "name": "continue", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their fields. Defaults to everything.", + "in": "query", + "name": "fieldSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "A selector to restrict the list of returned objects by their labels. Defaults to everything.", + "in": "query", + "name": "labelSelector", + "type": "string", + "uniqueItems": true + }, + { + "description": "limit is a maximum number of responses to return for a list call. If more items exist, the server will set the `continue` field on the list metadata to a value that can be used with the same initial query to retrieve the next set of results. Setting a limit may return fewer than the requested amount of items (up to zero items) in the event all requested objects are filtered out and clients should only use the presence of the continue field to determine whether more results are available. Servers may choose not to support the limit argument and will return all of the available results. If limit is specified and the continue field is empty, clients may assume that no more results are available. This field is not supported if watch is true.\n\nThe server guarantees that the objects returned when using continue will be identical to issuing a single list call without a limit - that is, no objects created, modified, or deleted after the first request is issued will be included in any subsequent continued requests. This is sometimes referred to as a consistent snapshot, and ensures that a client that is using limit to receive smaller chunks of a very large result can ensure they see all possible objects. If objects are updated during a chunked list the version of the object that was present at the time the first list result was calculated is returned.", + "in": "query", + "name": "limit", + "type": "integer", + "uniqueItems": true + }, + { + "description": "name of the StorageVersionMigration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "description": "If 'true', then the output is pretty printed. Defaults to 'false' unless the user-agent indicates a browser or command-line HTTP tool (curl and wget).", + "in": "query", + "name": "pretty", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersion sets a constraint on what resource versions a request may be served from. See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersion", + "type": "string", + "uniqueItems": true + }, + { + "description": "resourceVersionMatch determines how resourceVersion is applied to list calls. It is highly recommended that resourceVersionMatch be set for list calls where resourceVersion is set See https://kubernetes.io/docs/reference/using-api/api-concepts/#resource-versions for details.\n\nDefaults to unset", + "in": "query", + "name": "resourceVersionMatch", + "type": "string", + "uniqueItems": true + }, + { + "description": "`sendInitialEvents=true` may be set together with `watch=true`. In that case, the watch stream will begin with synthetic events to produce the current state of objects in the collection. Once all such events have been sent, a synthetic \"Bookmark\" event will be sent. The bookmark will report the ResourceVersion (RV) corresponding to the set of objects, and be marked with `\"k8s.io/initial-events-end\": \"true\"` annotation. Afterwards, the watch stream will proceed as usual, sending watch events corresponding to changes (subsequent to the RV) to objects watched.\n\nWhen `sendInitialEvents` option is set, we require `resourceVersionMatch` option to also be set. The semantic of the watch request is as following: - `resourceVersionMatch` = NotOlderThan\n is interpreted as \"data at least as new as the provided `resourceVersion`\"\n and the bookmark event is send when the state is synced\n to a `resourceVersion` at least as fresh as the one provided by the ListOptions.\n If `resourceVersion` is unset, this is interpreted as \"consistent read\" and the\n bookmark event is send when the state is synced at least to the moment\n when request started being processed.\n- `resourceVersionMatch` set to any other value or unset\n Invalid error is returned.\n\nDefaults to true if `resourceVersion=\"\"` or `resourceVersion=\"0\"` (for backward compatibility reasons) and to false otherwise.", + "in": "query", + "name": "sendInitialEvents", + "type": "boolean", + "uniqueItems": true + }, + { + "description": "Timeout for the list/watch call. This limits the duration of the call, regardless of any activity or inactivity.", + "in": "query", + "name": "timeoutSeconds", + "type": "integer", + "uniqueItems": true + }, + { + "description": "Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.", + "in": "query", + "name": "watch", + "type": "boolean", + "uniqueItems": true + } + ] + }, "/logs/": { "get": { "operationId": "logFileListHandler", diff --git a/kubernetes/swagger.json.unprocessed b/kubernetes/swagger.json.unprocessed index 58c12b0..38a0006 100644 --- a/kubernetes/swagger.json.unprocessed +++ b/kubernetes/swagger.json.unprocessed @@ -1,5 +1,41 @@ { "definitions": { + "io.k8s.api.admissionregistration.v1.AuditAnnotation": { + "description": "AuditAnnotation describes how to produce an audit annotation for an API request.", + "properties": { + "key": { + "description": "key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length.\n\nThe key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: \"{ValidatingAdmissionPolicy name}/{key}\".\n\nIf an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded.\n\nRequired.", + "type": "string" + }, + "valueExpression": { + "description": "valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb.\n\nIf multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list.\n\nRequired.", + "type": "string" + } + }, + "required": [ + "key", + "valueExpression" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ExpressionWarning": { + "description": "ExpressionWarning is a warning information that targets a specific expression.", + "properties": { + "fieldRef": { + "description": "The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is \"spec.validations[0].expression\"", + "type": "string" + }, + "warning": { + "description": "The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler.", + "type": "string" + } + }, + "required": [ + "fieldRef", + "warning" + ], + "type": "object" + }, "io.k8s.api.admissionregistration.v1.MatchCondition": { "description": "MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.", "properties": { @@ -18,6 +54,41 @@ ], "type": "object" }, + "io.k8s.api.admissionregistration.v1.MatchResources": { + "description": "MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "properties": { + "excludeResourceRules": { + "description": "ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded)", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "matchPolicy": { + "description": "matchPolicy defines how the \"MatchResources\" list is used to match incoming requests. Allowed values are \"Exact\" or \"Equivalent\".\n\n- Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy.\n\n- Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and \"rules\" only included `apiGroups:[\"apps\"], apiVersions:[\"v1\"], resources: [\"deployments\"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy.\n\nDefaults to \"Equivalent\"", + "type": "string" + }, + "namespaceSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy.\n\nFor example, to run the webhook on any objects whose namespace is not associated with \"runlevel\" of \"0\" or \"1\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"runlevel\",\n \"operator\": \"NotIn\",\n \"values\": [\n \"0\",\n \"1\"\n ]\n }\n ]\n}\n\nIf instead you want to only run the policy on any objects whose namespace is associated with the \"environment\" of \"prod\" or \"staging\"; you will set the selector as follows: \"namespaceSelector\": {\n \"matchExpressions\": [\n {\n \"key\": \"environment\",\n \"operator\": \"In\",\n \"values\": [\n \"prod\",\n \"staging\"\n ]\n }\n ]\n}\n\nSee https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors.\n\nDefault to the empty LabelSelector, which matches everything." + }, + "objectSelector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything." + }, + "resourceRules": { + "description": "ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.NamedRuleWithOperations" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, "io.k8s.api.admissionregistration.v1.MutatingWebhook": { "description": "MutatingWebhook describes an admission webhook and the resources and operations it applies to.", "properties": { @@ -26,7 +97,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "clientConfig": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", @@ -37,7 +109,7 @@ "type": "string" }, "matchConditions": { - "description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\nThis is a beta feature and managed by the AdmissionWebhookMatchConditions feature gate.", + "description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped", "items": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchCondition" }, @@ -74,7 +146,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "sideEffects": { "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", @@ -115,6 +188,10 @@ "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MutatingWebhook" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" } @@ -163,6 +240,95 @@ } ] }, + "io.k8s.api.admissionregistration.v1.NamedRuleWithOperations": { + "description": "NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames.", + "properties": { + "apiGroups": { + "description": "APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "apiVersions": { + "description": "APIVersions is the API versions the resources belong to. '*' is all versions. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "operations": { + "description": "Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If '*' is present, the length of the slice must be one. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resourceNames": { + "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "resources": { + "description": "Resources is a list of resources this rule applies to.\n\nFor example: 'pods' means pods. 'pods/log' means the log subresource of pods. '*' means all resources, but not subresources. 'pods/*' means all subresources of pods. '*/scale' means all scale subresources. '*/*' means all resources and their subresources.\n\nIf wildcard is present, the validation rule will ensure resources do not overlap with each other.\n\nDepending on the enclosing object, subresources might not be allowed. Required.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "scope": { + "description": "scope specifies the scope of this rule. Valid values are \"Cluster\", \"Namespaced\", and \"*\" \"Cluster\" means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. \"Namespaced\" means that only namespaced resources will match this rule. \"*\" means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is \"*\".", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1.ParamKind": { + "description": "ParamKind is a tuple of Group Kind and Version.", + "properties": { + "apiVersion": { + "description": "APIVersion is the API group version the resources belong to. In format of \"group/version\". Required.", + "type": "string" + }, + "kind": { + "description": "Kind is the API kind the resources belong to. Required.", + "type": "string" + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, + "io.k8s.api.admissionregistration.v1.ParamRef": { + "description": "ParamRef describes how to locate the params to be used as input to expressions of rules applied by a policy binding.", + "properties": { + "name": { + "description": "name is the name of the resource being referenced.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset.\n\nA single parameter used for all admission requests can be configured by setting the `name` field, leaving `selector` blank, and setting namespace if `paramKind` is namespace-scoped.", + "type": "string" + }, + "namespace": { + "description": "namespace is the namespace of the referenced resource. Allows limiting the search for params to a specific namespace. Applies to both `name` and `selector` fields.\n\nA per-namespace parameter may be used by specifying a namespace-scoped `paramKind` in the policy and leaving this field empty.\n\n- If `paramKind` is cluster-scoped, this field MUST be unset. Setting this field results in a configuration error.\n\n- If `paramKind` is namespace-scoped, the namespace of the object being evaluated for admission will be used when this field is left unset. Take care that if this is left empty the binding must not match any cluster-scoped resources, which will result in an error.", + "type": "string" + }, + "parameterNotFoundAction": { + "description": "`parameterNotFoundAction` controls the behavior of the binding when the resource exists, and name or selector is valid, but there are no parameters matched by the binding. If the value is set to `Allow`, then no matched parameters will be treated as successful validation by the binding. If set to `Deny`, then no matched parameters will be subject to the `failurePolicy` of the policy.\n\nAllowed values are `Allow` or `Deny`\n\nRequired", + "type": "string" + }, + "selector": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", + "description": "selector can be used to match multiple param objects based on their labels. Supply selector: {} to match all resources of the ParamKind.\n\nIf multiple params are found, they are all evaluated with the policy expressions and the results are ANDed together.\n\nOne of `name` or `selector` must be set, but `name` and `selector` are mutually exclusive properties. If one is set, the other must be unset." + } + }, + "type": "object", + "x-kubernetes-map-type": "atomic" + }, "io.k8s.api.admissionregistration.v1.RuleWithOperations": { "description": "RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.", "properties": { @@ -232,6 +398,258 @@ ], "type": "object" }, + "io.k8s.api.admissionregistration.v1.TypeChecking": { + "description": "TypeChecking contains results of type checking the expressions in the ValidatingAdmissionPolicy", + "properties": { + "expressionWarnings": { + "description": "The type checking warnings for each expression.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ExpressionWarning" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy": { + "description": "ValidatingAdmissionPolicy describes the definition of an admission validation policy that accepts or rejects an object without changing it.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicySpec", + "description": "Specification of the desired behavior of the ValidatingAdmissionPolicy." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyStatus", + "description": "The status of the ValidatingAdmissionPolicy, including warnings that are useful to determine if the policy behaves in the expected way. Populated by the system. Read-only." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding": { + "description": "ValidatingAdmissionPolicyBinding binds the ValidatingAdmissionPolicy with paramerized resources. ValidatingAdmissionPolicyBinding and parameter CRDs together define how cluster administrators configure policies for clusters.\n\nFor a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding.\n\nThe CEL expressions of a policy must have a computed CEL cost below the maximum CEL budget. Each evaluation of the policy is given an independent CEL cost budget. Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata." + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingSpec", + "description": "Specification of the desired behavior of the ValidatingAdmissionPolicyBinding." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingList": { + "description": "ValidatingAdmissionPolicyBindingList is a list of ValidatingAdmissionPolicyBinding.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "List of PolicyBinding.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBindingList", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingSpec": { + "description": "ValidatingAdmissionPolicyBindingSpec is the specification of the ValidatingAdmissionPolicyBinding.", + "properties": { + "matchResources": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchResources", + "description": "MatchResources declares what resources match this binding and will be validated by it. Note that this is intersected with the policy's matchConstraints, so only requests that are matched by the policy can be selected by this. If this is unset, all resources matched by the policy are validated by this binding When resourceRules is unset, it does not constrain resource matching. If a resource is matched by the other fields of this object, it will be validated. Note that this is differs from ValidatingAdmissionPolicy matchConstraints, where resourceRules are required." + }, + "paramRef": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ParamRef", + "description": "paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in ParamKind of the bound ValidatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the ValidatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param." + }, + "policyName": { + "description": "PolicyName references a ValidatingAdmissionPolicy name which the ValidatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required.", + "type": "string" + }, + "validationActions": { + "description": "validationActions declares how Validations of the referenced ValidatingAdmissionPolicy are enforced. If a validation evaluates to false it is always enforced according to these actions.\n\nFailures defined by the ValidatingAdmissionPolicy's FailurePolicy are enforced according to these actions only if the FailurePolicy is set to Fail, otherwise the failures are ignored. This includes compilation errors, runtime errors and misconfigurations of the policy.\n\nvalidationActions is declared as a set of action values. Order does not matter. validationActions may not contain duplicates of the same action.\n\nThe supported actions values are:\n\n\"Deny\" specifies that a validation failure results in a denied request.\n\n\"Warn\" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses.\n\n\"Audit\" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `\"validation.policy.admission.k8s.io/validation_failure\": \"[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]\"`\n\nClients should expect to handle additional values by ignoring any values not recognized.\n\n\"Deny\" and \"Warn\" may not be used together since this combination needlessly duplicates the validation failure both in the API response body and the HTTP warning headers.\n\nRequired.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "set" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyList": { + "description": "ValidatingAdmissionPolicyList is a list of ValidatingAdmissionPolicy.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "List of ValidatingAdmissionPolicy.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyList", + "version": "v1" + } + ] + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicySpec": { + "description": "ValidatingAdmissionPolicySpec is the specification of the desired behavior of the AdmissionPolicy.", + "properties": { + "auditAnnotations": { + "description": "auditAnnotations contains CEL expressions which are used to produce audit annotations for the audit event of the API request. validations and auditAnnotations may not both be empty; a least one of validations or auditAnnotations is required.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.AuditAnnotation" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "failurePolicy": { + "description": "failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings.\n\nA policy is invalid if spec.paramKind refers to a non-existent Kind. A binding is invalid if spec.paramRef.name refers to a non-existent resource.\n\nfailurePolicy does not define how validations that evaluate to false are handled.\n\nWhen failurePolicy is set to Fail, ValidatingAdmissionPolicyBinding validationActions define how failures are enforced.\n\nAllowed values are Ignore or Fail. Defaults to Fail.", + "type": "string" + }, + "matchConditions": { + "description": "MatchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nIf a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the policy is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the policy is skipped", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + }, + "matchConstraints": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchResources", + "description": "MatchConstraints specifies what resources this policy is designed to validate. The AdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API ValidatingAdmissionPolicy cannot match ValidatingAdmissionPolicy and ValidatingAdmissionPolicyBinding. Required." + }, + "paramKind": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ParamKind", + "description": "ParamKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If ParamKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in ValidatingAdmissionPolicyBinding, the params variable will be null." + }, + "validations": { + "description": "Validations contain CEL expressions which is used to apply the validation. Validations and AuditAnnotations may not both be empty; a minimum of one Validations or AuditAnnotations is required.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.Validation" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "variables": { + "description": "Variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except MatchConditions because MatchConditions are evaluated before the rest of the policy.\n\nThe expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, Variables must be sorted by the order of first appearance and acyclic.", + "items": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.Variable" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge" + } + }, + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyStatus": { + "description": "ValidatingAdmissionPolicyStatus represents the status of an admission validation policy.", + "properties": { + "conditions": { + "description": "The conditions represent the latest available observations of a policy's current state.", + "items": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Condition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map" + }, + "observedGeneration": { + "description": "The generation observed by the controller.", + "format": "int64", + "type": "integer" + }, + "typeChecking": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.TypeChecking", + "description": "The results of type checking for each expression. Presence of this field indicates the completion of the type checking." + } + }, + "type": "object" + }, "io.k8s.api.admissionregistration.v1.ValidatingWebhook": { "description": "ValidatingWebhook describes an admission webhook and the resources and operations it applies to.", "properties": { @@ -240,7 +658,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "clientConfig": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.WebhookClientConfig", @@ -251,7 +670,7 @@ "type": "string" }, "matchConditions": { - "description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped\n\nThis is a beta feature and managed by the AdmissionWebhookMatchConditions feature gate.", + "description": "MatchConditions is a list of conditions that must be met for a request to be sent to this webhook. Match conditions filter requests that have already been matched by the rules, namespaceSelector, and objectSelector. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed.\n\nThe exact matching logic is (in order):\n 1. If ANY matchCondition evaluates to FALSE, the webhook is skipped.\n 2. If ALL matchConditions evaluate to TRUE, the webhook is called.\n 3. If any matchCondition evaluates to an error (but none are FALSE):\n - If failurePolicy=Fail, reject the request\n - If failurePolicy=Ignore, the error is ignored and the webhook is skipped", "items": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.MatchCondition" }, @@ -284,7 +703,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.RuleWithOperations" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "sideEffects": { "description": "SideEffects states whether this webhook has side effects. Acceptable values are: None, NoneOnDryRun (webhooks created via v1beta1 may also specify Some or Unknown). Webhooks with side effects MUST implement a reconciliation system, since a request may be rejected by a future step in the admission chain and the side effects therefore need to be undone. Requests with the dryRun attribute will be auto-rejected if they match a webhook with sideEffects == Unknown or Some.", @@ -325,6 +745,10 @@ "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingWebhook" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" } @@ -373,6 +797,50 @@ } ] }, + "io.k8s.api.admissionregistration.v1.Validation": { + "description": "Validation specifies the CEL expression which is used to apply the validation.", + "properties": { + "expression": { + "description": "Expression represents the expression which will be evaluated by CEL. ref: https://github.com/google/cel-spec CEL expressions have access to the contents of the API request/response, organized into CEL variables as well as some other useful variables:\n\n- 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value.\n For example, a variable named 'foo' can be accessed as 'variables.foo'.\n- 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request.\n See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz\n- 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the\n request resource.\n\nThe `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible.\n\nOnly property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Accessible property names are escaped according to the following rules when accessed in the expression: - '__' escapes to '__underscores__' - '.' escapes to '__dot__' - '-' escapes to '__dash__' - '/' escapes to '__slash__' - Property names that exactly match a CEL RESERVED keyword escape to '__{keyword}__'. The keywords are:\n\t \"true\", \"false\", \"null\", \"in\", \"as\", \"break\", \"const\", \"continue\", \"else\", \"for\", \"function\", \"if\",\n\t \"import\", \"let\", \"loop\", \"package\", \"namespace\", \"return\".\nExamples:\n - Expression accessing a property named \"namespace\": {\"Expression\": \"object.__namespace__ > 0\"}\n - Expression accessing a property named \"x-prop\": {\"Expression\": \"object.x__dash__prop > 0\"}\n - Expression accessing a property named \"redact__d\": {\"Expression\": \"object.redact__underscores__d > 0\"}\n\nEquality on arrays with list type of 'set' or 'map' ignores element order, i.e. [1, 2] == [2, 1]. Concatenation on arrays with x-kubernetes-list-type use the semantics of the list type:\n - 'set': `X + Y` performs a union where the array positions of all elements in `X` are preserved and\n non-intersecting elements in `Y` are appended, retaining their partial order.\n - 'map': `X + Y` performs a merge where the array positions of all keys in `X` are preserved but the values\n are overwritten by values in `Y` when the key sets of `X` and `Y` intersect. Elements in `Y` with\n non-intersecting keys are appended, retaining their partial order.\nRequired.", + "type": "string" + }, + "message": { + "description": "Message represents the message displayed when validation fails. The message is required if the Expression contains line breaks. The message must not contain line breaks. If unset, the message is \"failed rule: {Rule}\". e.g. \"must be a URL with the host matching spec.host\" If the Expression contains line breaks. Message is required. The message must not contain line breaks. If unset, the message is \"failed Expression: {Expression}\".", + "type": "string" + }, + "messageExpression": { + "description": "messageExpression declares a CEL expression that evaluates to the validation failure message that is returned when this rule fails. Since messageExpression is used as a failure message, it must evaluate to a string. If both message and messageExpression are present on a validation, then messageExpression will be used if validation fails. If messageExpression results in a runtime error, the runtime error is logged, and the validation failure message is produced as if the messageExpression field were unset. If messageExpression evaluates to an empty string, a string with only spaces, or a string that contains line breaks, then the validation failure message will also be produced as if the messageExpression field were unset, and the fact that messageExpression produced an empty string/string with only spaces/string with line breaks will be logged. messageExpression has access to all the same variables as the `expression` except for 'authorizer' and 'authorizer.requestResource'. Example: \"object.x must be less than max (\"+string(params.max)+\")\"", + "type": "string" + }, + "reason": { + "description": "Reason represents a machine-readable description of why this validation failed. If this is the first validation in the list to fail, this reason, as well as the corresponding HTTP response code, are used in the HTTP response to the client. The currently supported reasons are: \"Unauthorized\", \"Forbidden\", \"Invalid\", \"RequestEntityTooLarge\". If not set, StatusReasonInvalid is used in the response to the client.", + "type": "string" + } + }, + "required": [ + "expression" + ], + "type": "object" + }, + "io.k8s.api.admissionregistration.v1.Variable": { + "description": "Variable is the definition of a variable that is used for composition. A variable is defined as a named expression.", + "properties": { + "expression": { + "description": "Expression is the expression that will be evaluated as the value of the variable. The CEL expression has access to the same identifiers as the CEL expressions in Validation.", + "type": "string" + }, + "name": { + "description": "Name is the name of the variable. The name must be a valid CEL identifier and unique among all variables. The variable can be accessed in other expressions through `variables` For example, if name is \"foo\", the variable will be available as `variables.foo`", + "type": "string" + } + }, + "required": [ + "name", + "expression" + ], + "type": "object", + "x-kubernetes-map-type": "atomic" + }, "io.k8s.api.admissionregistration.v1.WebhookClientConfig": { "description": "WebhookClientConfig contains the information to make a TLS connection with the webhook", "properties": { @@ -1437,7 +1905,8 @@ "required": [ "type", "status", - "reason" + "reason", + "message" ], "type": "object" }, @@ -1728,6 +2197,10 @@ "$ref": "#/definitions/io.k8s.api.apps.v1.DaemonSetCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -1962,6 +2435,10 @@ "$ref": "#/definitions/io.k8s.api.apps.v1.DeploymentCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -2146,6 +2623,10 @@ "$ref": "#/definitions/io.k8s.api.apps.v1.ReplicaSetCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -2392,7 +2873,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaim" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -2421,6 +2903,10 @@ "$ref": "#/definitions/io.k8s.api.apps.v1.StatefulSetCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -2582,7 +3068,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "boundObjectRef": { "$ref": "#/definitions/io.k8s.api.authentication.v1.BoundObjectReference", @@ -2661,7 +3148,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "token": { "description": "Token is the opaque bearer token.", @@ -2678,7 +3166,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "authenticated": { "description": "Authenticated indicates that the token was associated with a known user.", @@ -2713,7 +3202,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "uid": { "description": "A unique value that identifies this user across time. If this user is deleted and another user by the same name is added, they will have different UIDs.", @@ -2862,14 +3352,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "verbs": { "description": "Verb is a list of kubernetes non-resource API verbs, like: get, post, put, delete, patch, head, options. \"*\" means all.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -2919,28 +3411,32 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resourceNames": { "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed. \"*\" means all.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resources": { "description": "Resources is a list of resources this rule applies to. \"*\" means all in the specified apiGroups.\n \"*/foo\" represents the subresource 'foo' for all resources in the specified apiGroups.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "verbs": { "description": "Verb is a list of kubernetes resource API verbs, like: get, list, watch, create, update, delete, proxy. \"*\" means all.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -3098,7 +3594,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "nonResourceAttributes": { "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceAttributes", @@ -3160,14 +3657,16 @@ "items": { "$ref": "#/definitions/io.k8s.api.authorization.v1.NonResourceRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resourceRules": { "description": "ResourceRules is the list of actions the subject is allowed to perform on resources. The list ordering isn't significant, may contain duplicates, and possibly be incomplete.", "items": { "$ref": "#/definitions/io.k8s.api.authorization.v1.ResourceRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -4252,6 +4751,10 @@ "format": "int32", "type": "integer" }, + "managedBy": { + "description": "ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first \"/\" must be a valid subdomain as defined by RFC 1123. All characters trailing the first \"/\" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 64 characters.\n\nThis field is alpha-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (disabled by default).", + "type": "string" + }, "manualSelector": { "description": "manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector", "type": "boolean" @@ -4278,6 +4781,10 @@ "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", "description": "A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors" }, + "successPolicy": { + "$ref": "#/definitions/io.k8s.api.batch.v1.SuccessPolicy", + "description": "successPolicy specifies the policy when the Job can be declared as succeeded. If empty, the default behavior applies - the Job is declared as succeeded only when the number of succeeded pods equals to the completions. When the field is specified, it must be immutable and works only for the Indexed Jobs. Once the Job meets the SuccessPolicy, the lingering pods are terminated.\n\nThis field is alpha-level. To use this field, you must enable the `JobSuccessPolicy` feature gate (disabled by default)." + }, "suspend": { "description": "suspend specifies whether the Job controller should create Pods or not. If a Job is created with suspend set to true, no Pods are created by the Job controller. If a Job is suspended after creation (i.e. the flag goes from false to true), the Job controller will delete all active Pods associated with this Job. Users must design their workload to gracefully handle this. Suspending a Job will reset the StartTime field of the Job, effectively resetting the ActiveDeadlineSeconds timer too. Defaults to false.", "type": "boolean" @@ -4301,7 +4808,7 @@ "description": "JobStatus represents the current state of a Job.", "properties": { "active": { - "description": "The number of pending and running pods.", + "description": "The number of pending and running pods which are not terminating (without a deletionTimestamp). The value is zero for finished jobs.", "format": "int32", "type": "integer" }, @@ -4311,10 +4818,10 @@ }, "completionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully." + "description": "Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is set when the job finishes successfully, and only then. The value cannot be updated or removed. The value indicates the same or later point in time as the startTime field." }, "conditions": { - "description": "The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", + "description": "The latest available observations of an object's current state. When a Job fails, one of the conditions will have type \"Failed\" and status true. When a Job is suspended, one of the conditions will have type \"Suspended\" and status true; when the Job is resumed, the status of this condition will become false. When a Job is completed, one of the conditions will have type \"Complete\" and status true.\n\nA job is considered finished when it is in a terminal condition, either \"Complete\" or \"Failed\". A Job cannot have both the \"Complete\" and \"Failed\" conditions. Additionally, it cannot be in the \"Complete\" and \"FailureTarget\" conditions. The \"Complete\", \"Failed\" and \"FailureTarget\" conditions cannot be disabled.\n\nMore info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/", "items": { "$ref": "#/definitions/io.k8s.api.batch.v1.JobCondition" }, @@ -4324,12 +4831,12 @@ "x-kubernetes-patch-strategy": "merge" }, "failed": { - "description": "The number of pods which reached phase Failed.", + "description": "The number of pods which reached phase Failed. The value increases monotonically.", "format": "int32", "type": "integer" }, "failedIndexes": { - "description": "FailedIndexes holds the failed indexes when backoffLimitPerIndex=true. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". This field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).", + "description": "FailedIndexes holds the failed indexes when spec.backoffLimitPerIndex is set. The indexes are represented in the text format analogous as for the `completedIndexes` field, ie. they are kept as decimal integers separated by commas. The numbers are listed in increasing order. Three or more consecutive numbers are compressed and represented by the first and last element of the series, separated by a hyphen. For example, if the failed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". The set of failed indexes cannot overlap with the set of completed indexes.\n\nThis field is beta-level. It can be used when the `JobBackoffLimitPerIndex` feature gate is enabled (enabled by default).", "type": "string" }, "ready": { @@ -4339,10 +4846,10 @@ }, "startTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC." + "description": "Represents time when the job controller started processing a job. When a Job is created in the suspended state, this field is not set until the first time it is resumed. This field is reset every time a Job is resumed from suspension. It is represented in RFC3339 form and is in UTC.\n\nOnce set, the field can only be removed when the job is suspended. The field cannot be modified while the job is unsuspended or finished." }, "succeeded": { - "description": "The number of pods which reached phase Succeeded.", + "description": "The number of pods which reached phase Succeeded. The value increases monotonically for a given spec. However, it may decrease in reaction to scale down of elastic indexed jobs.", "format": "int32", "type": "integer" }, @@ -4353,7 +4860,7 @@ }, "uncountedTerminatedPods": { "$ref": "#/definitions/io.k8s.api.batch.v1.UncountedTerminatedPods", - "description": "uncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\n\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status:\n\n1. Add the pod UID to the arrays in this field. 2. Remove the pod finalizer. 3. Remove the pod UID from the arrays while increasing the corresponding\n counter.\n\nOld jobs might not be tracked using this field, in which case the field remains null." + "description": "uncountedTerminatedPods holds the UIDs of Pods that have terminated but the job controller hasn't yet accounted for in the status counters.\n\nThe job controller creates pods with a finalizer. When a pod terminates (succeeded or failed), the controller does three steps to account for it in the job status:\n\n1. Add the pod UID to the arrays in this field. 2. Remove the pod finalizer. 3. Remove the pod UID from the arrays while increasing the corresponding\n counter.\n\nOld jobs might not be tracked using this field, in which case the field remains null. The structure is empty for finished jobs." } }, "type": "object" @@ -4459,6 +4966,38 @@ ], "type": "object" }, + "io.k8s.api.batch.v1.SuccessPolicy": { + "description": "SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes.", + "properties": { + "rules": { + "description": "rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the \"SucceededCriteriaMet\" condition is added, and the lingering pods are removed. The terminal state for such a Job has the \"Complete\" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed.", + "items": { + "$ref": "#/definitions/io.k8s.api.batch.v1.SuccessPolicyRule" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "rules" + ], + "type": "object" + }, + "io.k8s.api.batch.v1.SuccessPolicyRule": { + "description": "SuccessPolicyRule describes rule for declaring a Job as succeeded. Each rule must have at least one of the \"succeededIndexes\" or \"succeededCount\" specified.", + "properties": { + "succeededCount": { + "description": "succeededCount specifies the minimal required size of the actual set of the succeeded indexes for the Job. When succeededCount is used along with succeededIndexes, the check is constrained only to the set of indexes specified by succeededIndexes. For example, given that succeededIndexes is \"1-4\", succeededCount is \"3\", and completed indexes are \"1\", \"3\", and \"5\", the Job isn't declared as succeeded because only \"1\" and \"3\" indexes are considered in that rules. When this field is null, this doesn't default to any value and is never evaluated at any time. When specified it needs to be a positive integer.", + "format": "int32", + "type": "integer" + }, + "succeededIndexes": { + "description": "succeededIndexes specifies the set of indexes which need to be contained in the actual set of the succeeded indexes for the Job. The list of indexes must be within 0 to \".spec.completions-1\" and must not contain duplicates. At least one element is required. The indexes are represented as intervals separated by commas. The intervals can be a decimal integer or a pair of decimal integers separated by a hyphen. The number are listed in represented by the first and last element of the series, separated by a hyphen. For example, if the completed indexes are 1, 3, 4, 5 and 7, they are represented as \"1,3-5,7\". When this field is null, this field doesn't default to any value and is never evaluated at any time.", + "type": "string" + } + }, + "type": "object" + }, "io.k8s.api.batch.v1.UncountedTerminatedPods": { "description": "UncountedTerminatedPods holds UIDs of Pods that have terminated but haven't been accounted in Job status counters.", "properties": { @@ -4886,6 +5425,31 @@ }, "type": "object" }, + "io.k8s.api.core.v1.AppArmorProfile": { + "description": "AppArmorProfile defines a pod or container's AppArmor settings.", + "properties": { + "localhostProfile": { + "description": "localhostProfile indicates a profile loaded on the node that should be used. The profile must be preconfigured on the node to work. Must match the loaded name of the profile. Must be set if and only if type is \"Localhost\".", + "type": "string" + }, + "type": { + "description": "type indicates which kind of AppArmor profile will be applied. Valid options are:\n Localhost - a profile pre-loaded on the node.\n RuntimeDefault - the container runtime's default profile.\n Unconfined - no AppArmor enforcement.", + "type": "string" + } + }, + "required": [ + "type" + ], + "type": "object", + "x-kubernetes-unions": [ + { + "discriminator": "type", + "fields-to-discriminateBy": { + "localhostProfile": "LocalhostProfile" + } + } + ] + }, "io.k8s.api.core.v1.AttachedVolume": { "description": "AttachedVolume describes a volume attached to a node", "properties": { @@ -5111,14 +5675,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "drop": { "description": "Removed capabilities", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -5131,7 +5697,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "path": { "description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", @@ -5167,7 +5734,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "path": { "description": "path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /", @@ -5338,6 +5906,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.ComponentCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -5442,7 +6014,7 @@ "description": "ConfigMapEnvSource selects a ConfigMap to populate the environment variables with.\n\nThe contents of the target ConfigMap's Data field will represent the key-value pairs as environment variables.", "properties": { "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -5460,7 +6032,7 @@ "type": "string" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -5548,10 +6120,11 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -5574,10 +6147,11 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -5595,14 +6169,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "command": { "description": "Entrypoint array. Not executed within a shell. The container image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "env": { "description": "List of environment variables to set in the container. Cannot be updated.", @@ -5610,6 +6186,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -5618,7 +6198,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "image": { "description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets.", @@ -5708,6 +6289,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "devicePath" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "devicePath", "x-kubernetes-patch-strategy": "merge" }, @@ -5717,6 +6302,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "mountPath", "x-kubernetes-patch-strategy": "merge" }, @@ -5738,7 +6327,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "sizeBytes": { "description": "The size of the image in bytes.", @@ -5928,6 +6518,19 @@ "state": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerState", "description": "State holds details about the container's current condition." + }, + "volumeMounts": { + "description": "Status of volume mounts.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMountStatus" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "mountPath", + "x-kubernetes-patch-strategy": "merge" } }, "required": [ @@ -5961,7 +6564,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -5971,7 +6575,7 @@ "properties": { "fieldRef": { "$ref": "#/definitions/io.k8s.api.core.v1.ObjectFieldSelector", - "description": "Required: Selects a field of the pod: only annotations, labels, name and namespace are supported." + "description": "Required: Selects a field of the pod: only annotations, labels, name, namespace and uid are supported." }, "mode": { "description": "Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.", @@ -6005,7 +6609,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.DownwardAPIVolumeFile" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -6085,21 +6690,24 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "notReadyAddresses": { "description": "IP addresses which offer the related ports but are not currently marked as ready because they have not yet finished starting, have recently failed a readiness check, or have recently failed a liveness check.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EndpointAddress" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ports": { "description": "Port numbers available on the related IP addresses.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EndpointPort" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -6124,7 +6732,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EndpointSubset" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -6240,14 +6849,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "command": { "description": "Entrypoint array. Not executed within a shell. The image's ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container's environment. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. \"$$(VAR_NAME)\" will produce the string literal \"$(VAR_NAME)\". Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "env": { "description": "List of environment variables to set in the container. Cannot be updated.", @@ -6255,6 +6866,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.EnvVar" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -6263,7 +6878,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.EnvFromSource" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "image": { "description": "Container image name. More info: https://kubernetes.io/docs/concepts/containers/images", @@ -6357,6 +6973,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.VolumeDevice" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "devicePath" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "devicePath", "x-kubernetes-patch-strategy": "merge" }, @@ -6366,6 +6986,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.VolumeMount" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "mountPath" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "mountPath", "x-kubernetes-patch-strategy": "merge" }, @@ -6547,7 +7171,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -6573,14 +7198,16 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "wwids": { "description": "wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -6787,7 +7414,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.HTTPHeader" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "path": { "description": "Path to access on the HTTP server.", @@ -6833,13 +7461,17 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ip": { "description": "IP address of the host file entry.", "type": "string" } }, + "required": [ + "ip" + ], "type": "object" }, "io.k8s.api.core.v1.HostIP": { @@ -6906,7 +7538,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", @@ -6965,7 +7598,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "readOnly": { "description": "readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false.", @@ -7166,7 +7800,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.LimitRangeItem" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -7208,7 +7843,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.LoadBalancerIngress" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -7217,7 +7853,7 @@ "description": "LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.", "properties": { "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, @@ -7383,7 +8019,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -7397,6 +8034,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.NamespaceCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -7466,7 +8107,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PreferredSchedulingTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "requiredDuringSchedulingIgnoredDuringExecution": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", @@ -7586,6 +8228,30 @@ } ] }, + "io.k8s.api.core.v1.NodeRuntimeHandler": { + "description": "NodeRuntimeHandler is a set of runtime handler information.", + "properties": { + "features": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeRuntimeHandlerFeatures", + "description": "Supported features." + }, + "name": { + "description": "Runtime handler name. Empty for the default runtime handler.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.core.v1.NodeRuntimeHandlerFeatures": { + "description": "NodeRuntimeHandlerFeatures is a set of runtime features.", + "properties": { + "recursiveReadOnlyMounts": { + "description": "RecursiveReadOnlyMounts is set to true if the runtime handler supports RecursiveReadOnlyMounts.", + "type": "boolean" + } + }, + "type": "object" + }, "io.k8s.api.core.v1.NodeSelector": { "description": "A node selector represents the union of the results of one or more label queries over a set of nodes; that is, it represents the OR of the selectors represented by the node selector terms.", "properties": { @@ -7594,7 +8260,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -7619,7 +8286,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -7636,14 +8304,16 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "matchFields": { "description": "A list of node selector requirements by node's fields.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelectorRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -7670,6 +8340,7 @@ "type": "string" }, "type": "array", + "x-kubernetes-list-type": "set", "x-kubernetes-patch-strategy": "merge" }, "providerID": { @@ -7681,7 +8352,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Taint" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "unschedulable": { "description": "Unschedulable controls node schedulability of new pods. By default, node is schedulable. More info: https://kubernetes.io/docs/concepts/nodes/node/#manual-node-administration", @@ -7699,6 +8371,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.NodeAddress" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -7722,6 +8398,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.NodeCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -7738,7 +8418,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerImage" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "nodeInfo": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSystemInfo", @@ -7748,19 +8429,29 @@ "description": "NodePhase is the recently observed lifecycle phase of the node. More info: https://kubernetes.io/docs/concepts/nodes/node/#phase The field is never populated, and now is deprecated.", "type": "string" }, + "runtimeHandlers": { + "description": "The available runtime handlers.", + "items": { + "$ref": "#/definitions/io.k8s.api.core.v1.NodeRuntimeHandler" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "volumesAttached": { "description": "List of volumes that are attached to the node.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.AttachedVolume" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "volumesInUse": { "description": "List of attachable volumes in use (mounted) by the node.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -7958,7 +8649,7 @@ "type": "string" }, "reason": { - "description": "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"ResizeStarted\" that means the underlying persistent volume is being resized.", + "description": "reason is a unique, this should be a short, machine understandable string that gives the reason for condition's last transition. If it reports \"Resizing\" that means the underlying persistent volume is being resized.", "type": "string" }, "status": { @@ -8017,7 +8708,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "dataSource": { "$ref": "#/definitions/io.k8s.api.core.v1.TypedLocalObjectReference", @@ -8040,7 +8732,7 @@ "type": "string" }, "volumeAttributesClassName": { - "description": "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#volumeattributesclass (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", + "description": "volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Alpha) Using this field requires the VolumeAttributesClass feature gate to be enabled.", "type": "string" }, "volumeMode": { @@ -8062,7 +8754,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "allocatedResourceStatuses": { "additionalProperties": { @@ -8087,11 +8780,15 @@ "type": "object" }, "conditions": { - "description": "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'ResizeStarted'.", + "description": "conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PersistentVolumeClaimCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -8187,7 +8884,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "awsElasticBlockStore": { "$ref": "#/definitions/io.k8s.api.core.v1.AWSElasticBlockStoreVolumeSource", @@ -8262,7 +8960,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "nfs": { "$ref": "#/definitions/io.k8s.api.core.v1.NFSVolumeSource", @@ -8324,7 +9023,7 @@ "properties": { "lastPhaseTransitionTime": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", - "description": "lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions. This is an alpha field and requires enabling PersistentVolumeLastPhaseTransitionTime feature." + "description": "lastPhaseTransitionTime is the time the phase transitioned from one to another and automatically resets to current time everytime a volume phase transitions. This is a beta field and requires the PersistentVolumeLastPhaseTransitionTime feature to be enabled (enabled by default)." }, "message": { "description": "message is a human-readable message indicating details about why the volume is in this state.", @@ -8399,14 +9098,16 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "requiredDuringSchedulingIgnoredDuringExecution": { "description": "If the affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -8419,7 +9120,7 @@ "description": "A label query over a set of resources, in this case pods. If it's null, this PodAffinityTerm matches with no Pods." }, "matchLabelKeys": { - "description": "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. Also, MatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + "description": "MatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key in (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both matchLabelKeys and labelSelector. Also, matchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", "items": { "type": "string" }, @@ -8427,7 +9128,7 @@ "x-kubernetes-list-type": "atomic" }, "mismatchLabelKeys": { - "description": "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", + "description": "MismatchLabelKeys is a set of pod label keys to select which pods will be taken into consideration. The keys are used to lookup values from the incoming pod labels, those key-value labels are merged with `labelSelector` as `key notin (value)` to select the group of existing pods which pods will be taken into consideration for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming pod labels will be ignored. The default value is empty. The same key is forbidden to exist in both mismatchLabelKeys and labelSelector. Also, mismatchLabelKeys cannot be set when labelSelector isn't set. This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate.", "items": { "type": "string" }, @@ -8443,7 +9144,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "topologyKey": { "description": "This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching the labelSelector in the specified namespaces, where co-located is defined as running on a node whose value of the label with key topologyKey matches that of any node on which any of the selected pods is running. Empty topologyKey is not allowed.", @@ -8463,14 +9165,16 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.WeightedPodAffinityTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "requiredDuringSchedulingIgnoredDuringExecution": { "description": "If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodAffinityTerm" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -8517,21 +9221,24 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "options": { "description": "A list of DNS resolver options. This will be merged with the base options generated from DNSPolicy. Duplicated entries will be removed. Resolution options given in Options will override those that appear in the base DNSPolicy.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodDNSConfigOption" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "searches": { "description": "A list of DNS search domains for host-name lookup. This will be appended to the base search paths generated from DNSPolicy. Duplicated search paths will be removed.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -8670,6 +9377,10 @@ "io.k8s.api.core.v1.PodSecurityContext": { "description": "PodSecurityContext holds pod-level security attributes and common container settings. Some fields are also present in container.securityContext. Field values of container.securityContext take precedence over field values of PodSecurityContext.", "properties": { + "appArmorProfile": { + "$ref": "#/definitions/io.k8s.api.core.v1.AppArmorProfile", + "description": "appArmorProfile is the AppArmor options to use by the containers in this pod. Note that this field cannot be set when spec.os.name is windows." + }, "fsGroup": { "description": "A special supplemental group that applies to all containers in a pod. Some volume types allow the Kubelet to change the ownership of that volume to be owned by the pod:\n\n1. The owning GID will be the FSGroup 2. The setgid bit is set (new files created in the volume will be owned by FSGroup) 3. The permission bits are OR'd with rw-rw----\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume. Note that this field cannot be set when spec.os.name is windows.", "format": "int64", @@ -8707,14 +9418,16 @@ "format": "int64", "type": "integer" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "sysctls": { "description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported sysctls (by the container runtime) might fail to launch. Note that this field cannot be set when spec.os.name is windows.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Sysctl" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "windowsOptions": { "$ref": "#/definitions/io.k8s.api.core.v1.WindowsSecurityContextOptions", @@ -8745,6 +9458,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.Container" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -8766,15 +9483,23 @@ "$ref": "#/definitions/io.k8s.api.core.v1.EphemeralContainer" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, "hostAliases": { - "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified. This is only valid for non-hostNetwork pods.", + "description": "HostAliases is an optional list of hosts and IPs that will be injected into the pod's hosts file if specified.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.HostAlias" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "ip" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "ip", "x-kubernetes-patch-strategy": "merge" }, @@ -8804,6 +9529,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -8813,6 +9542,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.Container" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" }, @@ -8830,7 +9563,7 @@ }, "os": { "$ref": "#/definitions/io.k8s.api.core.v1.PodOS", - "description": "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup" + "description": "Specifies the OS of the containers in the pod. Some pod and container fields are restricted if this is set.\n\nIf the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions\n\nIf the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup" }, "overhead": { "additionalProperties": { @@ -8857,7 +9590,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodReadinessGate" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resourceClaims": { "description": "ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name.\n\nThis is an alpha field and requires enabling the DynamicResourceAllocation feature gate.\n\nThis field is immutable.", @@ -8885,7 +9619,7 @@ "type": "string" }, "schedulingGates": { - "description": "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.\n\nThis is a beta feature enabled by the PodSchedulingReadiness feature gate.", + "description": "SchedulingGates is an opaque list of values that if specified will block scheduling the pod. If schedulingGates is not empty, the pod will stay in the SchedulingGated state and the scheduler will not attempt to schedule the pod.\n\nSchedulingGates can only be set at pod creation time, and be removed only afterwards.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.PodSchedulingGate" }, @@ -8902,7 +9636,7 @@ "description": "SecurityContext holds pod-level security attributes and common container settings. Optional: Defaults to empty. See type description for default values of each field." }, "serviceAccount": { - "description": "DeprecatedServiceAccount is a depreciated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", + "description": "DeprecatedServiceAccount is a deprecated alias for ServiceAccountName. Deprecated: Use serviceAccountName instead.", "type": "string" }, "serviceAccountName": { @@ -8931,7 +9665,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.Toleration" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "topologySpreadConstraints": { "description": "TopologySpreadConstraints describes how a group of pods ought to spread across topology domains. Scheduler will schedule pods in a way which abides by the constraints. All topologySpreadConstraints are ANDed.", @@ -8953,6 +9688,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.Volume" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge,retainKeys" } @@ -8971,6 +9710,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.PodCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -8979,14 +9722,16 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ephemeralContainerStatuses": { "description": "Status for any ephemeral containers that have run in this pod.", "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "hostIP": { "description": "hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod", @@ -9007,7 +9752,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ContainerStatus" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "message": { "description": "A human readable message indicating details about why the pod is in this condition.", @@ -9031,6 +9777,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.PodIP" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "ip" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "ip", "x-kubernetes-patch-strategy": "merge" }, @@ -9271,7 +10021,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.VolumeProjection" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -9330,7 +10081,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "pool": { "description": "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", @@ -9375,7 +10127,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "pool": { "description": "pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it", @@ -9540,6 +10293,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.ReplicationControllerCondition" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "type", "x-kubernetes-patch-strategy": "merge" }, @@ -9691,7 +10448,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -9879,7 +10637,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.ScopedResourceSelectorRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -9901,7 +10660,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -9987,7 +10747,7 @@ "description": "SecretEnvSource selects a Secret to populate the environment variables with.\n\nThe contents of the target Secret's Data field will represent the key-value pairs as environment variables.", "properties": { "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -10005,7 +10765,7 @@ "type": "string" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -10062,10 +10822,11 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "name": { - "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", + "description": "Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" }, "optional": { @@ -10103,7 +10864,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.KeyToPath" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "optional": { "description": "optional field specify whether the Secret or its keys must be defined", @@ -10123,6 +10885,10 @@ "description": "AllowPrivilegeEscalation controls whether a process can gain more privileges than its parent process. This bool directly controls if the no_new_privs flag will be set on the container process. AllowPrivilegeEscalation is true always when the container is: 1) run as Privileged 2) has CAP_SYS_ADMIN Note that this field cannot be set when spec.os.name is windows.", "type": "boolean" }, + "appArmorProfile": { + "$ref": "#/definitions/io.k8s.api.core.v1.AppArmorProfile", + "description": "appArmorProfile is the AppArmor options to use by this container. If set, this profile overrides the pod's appArmorProfile. Note that this field cannot be set when spec.os.name is windows." + }, "capabilities": { "$ref": "#/definitions/io.k8s.api.core.v1.Capabilities", "description": "The capabilities to add/drop when running containers. Defaults to the default set of capabilities granted by the container runtime. Note that this field cannot be set when spec.os.name is windows." @@ -10217,7 +10983,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.LocalObjectReference" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "kind": { "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", @@ -10233,6 +11000,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.ObjectReference" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" } @@ -10397,7 +11168,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "externalName": { "description": "externalName is the external reference that discovery mechanisms will return as an alias for this service (e.g. a DNS CNAME record). No proxying will be involved. Must be a lowercase RFC-1123 hostname (https://tools.ietf.org/html/rfc1123) and requires `type` to be \"ExternalName\".", @@ -10441,7 +11213,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ports": { "description": "The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies", @@ -10477,6 +11250,10 @@ "$ref": "#/definitions/io.k8s.api.core.v1.SessionAffinityConfig", "description": "sessionAffinityConfig contains the configurations of session affinity." }, + "trafficDistribution": { + "description": "TrafficDistribution offers a way to express preferences for how traffic is distributed to Service endpoints. Implementations can use this field as a hint, but are not required to guarantee strict adherence. If the field is not set, the implementation will apply its default routing strategy. If set to \"PreferClose\", implementations should prioritize endpoints that are topologically close (e.g., same zone). This is an alpha field and requires enabling ServiceTrafficDistribution feature.", + "type": "string" + }, "type": { "description": "type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. \"ClusterIP\" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object or EndpointSlice objects. If clusterIP is \"None\", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a virtual IP. \"NodePort\" builds on ClusterIP and allocates a port on every node which routes to the same endpoints as the clusterIP. \"LoadBalancer\" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the same endpoints as the clusterIP. \"ExternalName\" aliases this service to the specified externalName. Several other fields do not apply to ExternalName services. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types", "type": "string" @@ -10683,7 +11460,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -10700,7 +11478,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.core.v1.TopologySelectorLabelRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -10727,7 +11506,7 @@ "type": "integer" }, "minDomains": { - "description": "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.\n\nThis is a beta field and requires the MinDomainsInPodTopologySpread feature gate to be enabled (enabled by default).", + "description": "MinDomains indicates a minimum number of eligible domains. When the number of eligible domains with matching topology keys is less than minDomains, Pod Topology Spread treats \"global minimum\" as 0, and then the calculation of Skew is performed. And when the number of eligible domains with matching topology keys equals or greater than minDomains, this value has no effect on scheduling. As a result, when the number of eligible domains is less than minDomains, scheduler won't schedule more than maxSkew Pods to those domains. If value is nil, the constraint behaves as if MinDomains is equal to 1. Valid values are integers greater than 0. When value is not nil, WhenUnsatisfiable must be DoNotSchedule.\n\nFor example, in a 3-zone cluster, MaxSkew is set to 2, MinDomains is set to 5 and pods with the same labelSelector spread as 2/2/2: | zone1 | zone2 | zone3 | | P P | P P | P P | The number of domains is less than 5(MinDomains), so \"global minimum\" is treated as 0. In this situation, new pod with the same labelSelector cannot be scheduled, because computed skew will be 3(3 - 0) if new Pod is scheduled to any of the three zones, it will violate MaxSkew.", "format": "int32", "type": "integer" }, @@ -10958,7 +11737,7 @@ "type": "string" }, "mountPropagation": { - "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10.", + "description": "mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. When RecursiveReadOnly is set to IfPossible or to Enabled, MountPropagation must be None or unspecified (which defaults to None).", "type": "string" }, "name": { @@ -10969,6 +11748,10 @@ "description": "Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false.", "type": "boolean" }, + "recursiveReadOnly": { + "description": "RecursiveReadOnly specifies whether read-only mounts should be handled recursively.\n\nIf ReadOnly is false, this field has no meaning and must be unspecified.\n\nIf ReadOnly is true, and this field is set to Disabled, the mount is not made recursively read-only. If this field is set to IfPossible, the mount is made recursively read-only, if it is supported by the container runtime. If this field is set to Enabled, the mount is made recursively read-only if it is supported by the container runtime, otherwise the pod will not be started and an error will be generated to indicate the reason.\n\nIf this field is set to IfPossible or Enabled, MountPropagation must be set to None (or be unspecified, which defaults to None).\n\nIf this field is not specified, it is treated as an equivalent of Disabled.", + "type": "string" + }, "subPath": { "description": "Path within the volume from which the container's volume should be mounted. Defaults to \"\" (volume's root).", "type": "string" @@ -10984,6 +11767,32 @@ ], "type": "object" }, + "io.k8s.api.core.v1.VolumeMountStatus": { + "description": "VolumeMountStatus shows status of volume mounts.", + "properties": { + "mountPath": { + "description": "MountPath corresponds to the original VolumeMount.", + "type": "string" + }, + "name": { + "description": "Name corresponds to the name of the original VolumeMount.", + "type": "string" + }, + "readOnly": { + "description": "ReadOnly corresponds to the original VolumeMount.", + "type": "boolean" + }, + "recursiveReadOnly": { + "description": "RecursiveReadOnly must be set to Disabled, Enabled, or unspecified (for non-readonly mounts). An IfPossible value in the original VolumeMount must be translated to Disabled or Enabled, depending on the mount result.", + "type": "string" + } + }, + "required": [ + "name", + "mountPath" + ], + "type": "object" + }, "io.k8s.api.core.v1.VolumeNodeAffinity": { "description": "VolumeNodeAffinity defines constraints that limit what nodes this volume can be accessed from.", "properties": { @@ -12665,7 +13474,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -12893,7 +13703,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.IngressLoadBalancerIngress" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13046,14 +13857,16 @@ "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "to": { "description": "to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13066,14 +13879,16 @@ "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPeer" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ports": { "description": "ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyPort" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13158,14 +13973,16 @@ "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyEgressRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "ingress": { "description": "ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)", "items": { "$ref": "#/definitions/io.k8s.api.networking.v1.NetworkPolicyIngressRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "podSelector": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector", @@ -13176,7 +13993,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -13271,6 +14089,9 @@ "description": "ParentRef references the resource that an IPAddress is attached to. An IPAddress must reference a parent object." } }, + "required": [ + "parentRef" + ], "type": "object" }, "io.k8s.api.networking.v1alpha1.ParentReference": { @@ -13293,6 +14114,10 @@ "type": "string" } }, + "required": [ + "resource", + "name" + ], "type": "object" }, "io.k8s.api.networking.v1alpha1.ServiceCIDR": { @@ -13371,7 +14196,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13690,7 +14516,8 @@ "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelector" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -13719,7 +14546,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -13755,7 +14583,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -13848,35 +14677,40 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "nonResourceURLs": { "description": "NonResourceURLs is a set of partial urls that a user should have access to. *s are allowed, but only as the full, final step in the path Since non-resource URLs are not namespaced, this field is only applicable for ClusterRoles referenced from a ClusterRoleBinding. Rules can either apply to API resources (such as \"pods\" or \"secrets\") or non-resource URL paths (such as \"/api\"), but not both.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resourceNames": { "description": "ResourceNames is an optional white list of names that the rule applies to. An empty set means that everything is allowed.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "resources": { "description": "Resources is a list of resources this rule applies to. '*' represents all resources.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "verbs": { "description": "Verbs is a list of Verbs that apply to ALL the ResourceKinds contained in this rule. '*' represents all verbs.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -13904,7 +14738,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.PolicyRule" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object", @@ -13940,7 +14775,8 @@ "items": { "$ref": "#/definitions/io.k8s.api.rbac.v1.Subject" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -14098,6 +14934,196 @@ }, "type": "object" }, + "io.k8s.api.resource.v1alpha2.DriverAllocationResult": { + "description": "DriverAllocationResult contains vendor parameters and the allocation result for one request.", + "properties": { + "namedResources": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.NamedResourcesAllocationResult", + "description": "NamedResources describes the allocation result when using the named resources model." + }, + "vendorRequestParameters": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "VendorRequestParameters are the per-request configuration parameters from the time that the claim was allocated." + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.DriverRequests": { + "description": "DriverRequests describes all resources that are needed from one particular driver.", + "properties": { + "driverName": { + "description": "DriverName is the name used by the DRA driver kubelet plugin.", + "type": "string" + }, + "requests": { + "description": "Requests describes all resources that are needed from the driver.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceRequest" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "vendorParameters": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "VendorParameters are arbitrary setup parameters for all requests of the claim. They are ignored while allocating the claim." + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.NamedResourcesAllocationResult": { + "description": "NamedResourcesAllocationResult is used in AllocationResultModel.", + "properties": { + "name": { + "description": "Name is the name of the selected resource instance.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.NamedResourcesAttribute": { + "description": "NamedResourcesAttribute is a combination of an attribute name and its value.", + "properties": { + "bool": { + "description": "BoolValue is a true/false value.", + "type": "boolean" + }, + "int": { + "description": "IntValue is a 64-bit integer.", + "format": "int64", + "type": "integer" + }, + "intSlice": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.NamedResourcesIntSlice", + "description": "IntSliceValue is an array of 64-bit integers." + }, + "name": { + "description": "Name is unique identifier among all resource instances managed by the driver on the node. It must be a DNS subdomain.", + "type": "string" + }, + "quantity": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.api.resource.Quantity", + "description": "QuantityValue is a quantity." + }, + "string": { + "description": "StringValue is a string.", + "type": "string" + }, + "stringSlice": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.NamedResourcesStringSlice", + "description": "StringSliceValue is an array of strings." + }, + "version": { + "description": "VersionValue is a semantic version according to semver.org spec 2.0.0.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.NamedResourcesFilter": { + "description": "NamedResourcesFilter is used in ResourceFilterModel.", + "properties": { + "selector": { + "description": "Selector is a CEL expression which must evaluate to true if a resource instance is suitable. The language is as defined in https://kubernetes.io/docs/reference/using-api/cel/\n\nIn addition, for each type NamedResourcesin AttributeValue there is a map that resolves to the corresponding value of the instance under evaluation. For example:\n\n attributes.quantity[\"a\"].isGreaterThan(quantity(\"0\")) &&\n attributes.stringslice[\"b\"].isSorted()", + "type": "string" + } + }, + "required": [ + "selector" + ], + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.NamedResourcesInstance": { + "description": "NamedResourcesInstance represents one individual hardware instance that can be selected based on its attributes.", + "properties": { + "attributes": { + "description": "Attributes defines the attributes of this resource instance. The name of each attribute must be unique.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.NamedResourcesAttribute" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "name": { + "description": "Name is unique identifier among all resource instances managed by the driver on the node. It must be a DNS subdomain.", + "type": "string" + } + }, + "required": [ + "name" + ], + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.NamedResourcesIntSlice": { + "description": "NamedResourcesIntSlice contains a slice of 64-bit integers.", + "properties": { + "ints": { + "description": "Ints is the slice of 64-bit integers.", + "items": { + "format": "int64", + "type": "integer" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "ints" + ], + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.NamedResourcesRequest": { + "description": "NamedResourcesRequest is used in ResourceRequestModel.", + "properties": { + "selector": { + "description": "Selector is a CEL expression which must evaluate to true if a resource instance is suitable. The language is as defined in https://kubernetes.io/docs/reference/using-api/cel/\n\nIn addition, for each type NamedResourcesin AttributeValue there is a map that resolves to the corresponding value of the instance under evaluation. For example:\n\n attributes.quantity[\"a\"].isGreaterThan(quantity(\"0\")) &&\n attributes.stringslice[\"b\"].isSorted()", + "type": "string" + } + }, + "required": [ + "selector" + ], + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.NamedResourcesResources": { + "description": "NamedResourcesResources is used in ResourceModel.", + "properties": { + "instances": { + "description": "The list of all individual resources instances currently available.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.NamedResourcesInstance" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "instances" + ], + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.NamedResourcesStringSlice": { + "description": "NamedResourcesStringSlice contains a slice of strings.", + "properties": { + "strings": { + "description": "Strings is the slice of strings.", + "items": { + "type": "string" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "required": [ + "strings" + ], + "type": "object" + }, "io.k8s.api.resource.v1alpha2.PodSchedulingContext": { "description": "PodSchedulingContext objects hold information that is needed to schedule a Pod with ResourceClaims that use \"WaitForFirstConsumer\" allocation mode.\n\nThis is an alpha type and requires enabling the DynamicResourceAllocation feature gate.", "properties": { @@ -14302,6 +15328,82 @@ } ] }, + "io.k8s.api.resource.v1alpha2.ResourceClaimParameters": { + "description": "ResourceClaimParameters defines resource requests for a ResourceClaim in an in-tree format understood by Kubernetes.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "driverRequests": { + "description": "DriverRequests describes all resources that are needed for the allocated claim. A single claim may use resources coming from different drivers. For each driver, this array has at most one entry which then may have one or more per-driver requests.\n\nMay be empty, in which case the claim can always be allocated.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.DriverRequests" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "generatedFrom": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParametersReference", + "description": "If this object was created from some other resource, then this links back to that resource. This field is used to find the in-tree representation of the claim parameters when the parameter reference of the claim refers to some unknown type." + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata" + }, + "shareable": { + "description": "Shareable indicates whether the allocated claim is meant to be shareable by multiple consumers at the same time.", + "type": "boolean" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + ] + }, + "io.k8s.api.resource.v1alpha2.ResourceClaimParametersList": { + "description": "ResourceClaimParametersList is a collection of ResourceClaimParameters.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "Items is the list of node resource capacity objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceClaimParametersList", + "version": "v1alpha2" + } + ] + }, "io.k8s.api.resource.v1alpha2.ResourceClaimParametersReference": { "description": "ResourceClaimParametersReference contains enough information to let you locate the parameters for a ResourceClaim. The object must be in the same namespace as the ResourceClaim.", "properties": { @@ -14387,7 +15489,9 @@ "x-kubernetes-list-map-keys": [ "uid" ], - "x-kubernetes-list-type": "map" + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "uid", + "x-kubernetes-patch-strategy": "merge" } }, "type": "object" @@ -14499,6 +15603,10 @@ "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParametersReference", "description": "ParametersRef references an arbitrary separate object that may hold parameters that will be used by the driver when allocating a resource that uses this class. A dynamic resource driver can distinguish between parameters stored here and and those stored in ResourceClaimSpec." }, + "structuredParameters": { + "description": "If and only if allocation of claims using this class is handled via structured parameters, then StructuredParameters must be set to true.", + "type": "boolean" + }, "suitableNodes": { "$ref": "#/definitions/io.k8s.api.core.v1.NodeSelector", "description": "Only nodes matching the selector will be considered by the scheduler when trying to find a Node that fits a Pod when that Pod uses a ResourceClaim that has not been allocated yet.\n\nSetting this field is optional. If null, all nodes are candidates." @@ -14551,6 +15659,86 @@ } ] }, + "io.k8s.api.resource.v1alpha2.ResourceClassParameters": { + "description": "ResourceClassParameters defines resource requests for a ResourceClass in an in-tree format understood by Kubernetes.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "filters": { + "description": "Filters describes additional contraints that must be met when using the class.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceFilter" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "generatedFrom": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParametersReference", + "description": "If this object was created from some other resource, then this links back to that resource. This field is used to find the in-tree representation of the class parameters when the parameter reference of the class refers to some unknown type." + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata" + }, + "vendorParameters": { + "description": "VendorParameters are arbitrary setup parameters for all claims using this class. They are ignored while allocating the claim. There must not be more than one entry per driver.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.VendorParameters" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + ] + }, + "io.k8s.api.resource.v1alpha2.ResourceClassParametersList": { + "description": "ResourceClassParametersList is a collection of ResourceClassParameters.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "Items is the list of node resource capacity objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceClassParametersList", + "version": "v1alpha2" + } + ] + }, "io.k8s.api.resource.v1alpha2.ResourceClassParametersReference": { "description": "ResourceClassParametersReference contains enough information to let you locate the parameters for a ResourceClass.", "properties": { @@ -14577,6 +15765,20 @@ ], "type": "object" }, + "io.k8s.api.resource.v1alpha2.ResourceFilter": { + "description": "ResourceFilter is a filter for resources from one particular driver.", + "properties": { + "driverName": { + "description": "DriverName is the name used by the DRA driver kubelet plugin.", + "type": "string" + }, + "namedResources": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.NamedResourcesFilter", + "description": "NamedResources describes a resource filter using the named resources model." + } + }, + "type": "object" + }, "io.k8s.api.resource.v1alpha2.ResourceHandle": { "description": "ResourceHandle holds opaque resource data for processing by a specific kubelet plugin.", "properties": { @@ -14587,6 +15789,142 @@ "driverName": { "description": "DriverName specifies the name of the resource driver whose kubelet plugin should be invoked to process this ResourceHandle's data once it lands on a node. This may differ from the DriverName set in ResourceClaimStatus this ResourceHandle is embedded in.", "type": "string" + }, + "structuredData": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.StructuredResourceHandle", + "description": "If StructuredData is set, then it needs to be used instead of Data." + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.ResourceRequest": { + "description": "ResourceRequest is a request for resources from one particular driver.", + "properties": { + "namedResources": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.NamedResourcesRequest", + "description": "NamedResources describes a request for resources with the named resources model." + }, + "vendorParameters": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "VendorParameters are arbitrary setup parameters for the requested resource. They are ignored while allocating a claim." + } + }, + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.ResourceSlice": { + "description": "ResourceSlice provides information about available resources on individual nodes.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "driverName": { + "description": "DriverName identifies the DRA driver providing the capacity information. A field selector can be used to list only ResourceSlice objects with a certain driver name.", + "type": "string" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata" + }, + "namedResources": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.NamedResourcesResources", + "description": "NamedResources describes available resources using the named resources model." + }, + "nodeName": { + "description": "NodeName identifies the node which provides the resources if they are local to a node.\n\nA field selector can be used to list only ResourceSlice objects with a certain node name.", + "type": "string" + } + }, + "required": [ + "driverName" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + ] + }, + "io.k8s.api.resource.v1alpha2.ResourceSliceList": { + "description": "ResourceSliceList is a collection of ResourceSlices.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "Items is the list of node resource capacity objects.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + }, + "type": "array" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "resource.k8s.io", + "kind": "ResourceSliceList", + "version": "v1alpha2" + } + ] + }, + "io.k8s.api.resource.v1alpha2.StructuredResourceHandle": { + "description": "StructuredResourceHandle is the in-tree representation of the allocation result.", + "properties": { + "nodeName": { + "description": "NodeName is the name of the node providing the necessary resources if the resources are local to a node.", + "type": "string" + }, + "results": { + "description": "Results lists all allocated driver resources.", + "items": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.DriverAllocationResult" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, + "vendorClaimParameters": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "VendorClaimParameters are the per-claim configuration parameters from the resource claim parameters at the time that the claim was allocated." + }, + "vendorClassParameters": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "VendorClassParameters are the per-claim configuration parameters from the resource class at the time that the claim was allocated." + } + }, + "required": [ + "results" + ], + "type": "object" + }, + "io.k8s.api.resource.v1alpha2.VendorParameters": { + "description": "VendorParameters are opaque parameters for one particular driver.", + "properties": { + "driverName": { + "description": "DriverName is the name used by the DRA driver kubelet plugin.", + "type": "string" + }, + "parameters": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.runtime.RawExtension", + "description": "Parameters can be arbitrary setup parameters. They are ignored while allocating a claim." } }, "type": "object" @@ -14746,11 +16084,11 @@ "type": "boolean" }, "fsGroupPolicy": { - "description": "fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\n\nThis field is immutable.\n\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.", + "description": "fsGroupPolicy defines if the underlying volume supports changing ownership and permission of the volume before being mounted. Refer to the specific FSGroupPolicy values for additional details.\n\nThis field was immutable in Kubernetes < 1.29 and now is mutable.\n\nDefaults to ReadWriteOnceWithFSType, which will examine each volume to determine if Kubernetes should modify ownership and permissions of the volume. With the default policy the defined fsGroup will only be applied if a fstype is defined and the volume's access mode contains ReadWriteOnce.", "type": "string" }, "podInfoOnMount": { - "description": "podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\n\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\nThe following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\n\nThis field is immutable.", + "description": "podInfoOnMount indicates this CSI volume driver requires additional pod information (like podName, podUID, etc.) during mount operations, if set to true. If set to false, pod information will not be passed on mount. Default is false.\n\nThe CSI driver specifies podInfoOnMount as part of driver deployment. If true, Kubelet will pass pod information as VolumeContext in the CSI NodePublishVolume() calls. The CSI driver is responsible for parsing and validating the information passed in as VolumeContext.\n\nThe following VolumeContext will be passed if podInfoOnMount is set to true. This list might grow, but the prefix will be used. \"csi.storage.k8s.io/pod.name\": pod.Name \"csi.storage.k8s.io/pod.namespace\": pod.Namespace \"csi.storage.k8s.io/pod.uid\": string(pod.UID) \"csi.storage.k8s.io/ephemeral\": \"true\" if the volume is an ephemeral inline volume\n defined by a CSIVolumeSource, otherwise \"false\"\n\n\"csi.storage.k8s.io/ephemeral\" is a new feature in Kubernetes 1.16. It is only required for drivers which support both the \"Persistent\" and \"Ephemeral\" VolumeLifecycleMode. Other drivers can leave pod info disabled and/or ignore this field. As Kubernetes 1.15 doesn't support this field, drivers can only support one mode when deployed on such a cluster and the deployment determines which mode that is, for example via a command line parameter of the driver.\n\nThis field was immutable in Kubernetes < 1.29 and now is mutable.", "type": "boolean" }, "requiresRepublish": { @@ -14836,7 +16174,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -14889,6 +16228,10 @@ "$ref": "#/definitions/io.k8s.api.storage.v1.CSINodeDriver" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "name" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "name", "x-kubernetes-patch-strategy": "merge" } @@ -14954,11 +16297,7 @@ "items": { "$ref": "#/definitions/io.k8s.api.storage.v1.CSIStorageCapacity" }, - "type": "array", - "x-kubernetes-list-map-keys": [ - "name" - ], - "x-kubernetes-list-type": "map" + "type": "array" }, "kind": { "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", @@ -15013,7 +16352,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "parameters": { "additionalProperties": { @@ -15335,6 +16675,168 @@ } ] }, + "io.k8s.api.storagemigration.v1alpha1.GroupVersionResource": { + "description": "The names of the group, the version, and the resource.", + "properties": { + "group": { + "description": "The name of the group.", + "type": "string" + }, + "resource": { + "description": "The name of the resource.", + "type": "string" + }, + "version": { + "description": "The name of the version.", + "type": "string" + } + }, + "type": "object" + }, + "io.k8s.api.storagemigration.v1alpha1.MigrationCondition": { + "description": "Describes the state of a migration at a certain point.", + "properties": { + "lastUpdateTime": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Time", + "description": "The last time this condition was updated." + }, + "message": { + "description": "A human readable message indicating details about the transition.", + "type": "string" + }, + "reason": { + "description": "The reason for the condition's last transition.", + "type": "string" + }, + "status": { + "description": "Status of the condition, one of True, False, Unknown.", + "type": "string" + }, + "type": { + "description": "Type of the condition.", + "type": "string" + } + }, + "required": [ + "type", + "status" + ], + "type": "object" + }, + "io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration": { + "description": "StorageVersionMigration represents a migration of stored data to the latest storage version.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta", + "description": "Standard object metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + }, + "spec": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationSpec", + "description": "Specification of the migration." + }, + "status": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationStatus", + "description": "Status of the migration." + } + }, + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationList": { + "description": "StorageVersionMigrationList is a collection of storage version migrations.", + "properties": { + "apiVersion": { + "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", + "type": "string" + }, + "items": { + "description": "Items is the list of StorageVersionMigration", + "items": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "kind": { + "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", + "type": "string" + }, + "metadata": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ListMeta", + "description": "Standard list metadata More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata" + } + }, + "required": [ + "items" + ], + "type": "object", + "x-kubernetes-group-version-kind": [ + { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigrationList", + "version": "v1alpha1" + } + ] + }, + "io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationSpec": { + "description": "Spec of the storage version migration.", + "properties": { + "continueToken": { + "description": "The token used in the list options to get the next chunk of objects to migrate. When the .status.conditions indicates the migration is \"Running\", users can use this token to check the progress of the migration.", + "type": "string" + }, + "resource": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.GroupVersionResource", + "description": "The resource that is being migrated. The migrator sends requests to the endpoint serving the resource. Immutable." + } + }, + "required": [ + "resource" + ], + "type": "object" + }, + "io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationStatus": { + "description": "Status of the storage version migration.", + "properties": { + "conditions": { + "description": "The latest available observations of the migration's current state.", + "items": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.MigrationCondition" + }, + "type": "array", + "x-kubernetes-list-map-keys": [ + "type" + ], + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge" + }, + "resourceVersion": { + "description": "ResourceVersion to compare with the GC cache for performing the migration. This is the current resource version of given group, version and resource when kube-controller-manager first observes this StorageVersionMigration resource.", + "type": "string" + } + }, + "type": "object" + }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition": { "description": "CustomResourceColumnDefinition specifies a column for server side printing.", "properties": { @@ -15497,7 +16999,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "kind": { "description": "kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.", @@ -15516,7 +17019,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "singular": { "description": "singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.", @@ -15557,7 +17061,8 @@ "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceDefinitionVersion" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -15591,7 +17096,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "type": "object" @@ -15604,7 +17110,8 @@ "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceColumnDefinition" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "deprecated": { "description": "deprecated indicates this version of the custom resource API is deprecated. When set to true, API requests to this version receive a warning header in the server response. Defaults to false.", @@ -15622,6 +17129,14 @@ "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.CustomResourceValidation", "description": "schema describes the schema used for validation, pruning, and defaulting of this version of the custom resource." }, + "selectableFields": { + "description": "selectableFields specifies paths to fields that may be used as field selectors. A maximum of 8 selectable fields are allowed. See https://kubernetes.io/docs/concepts/overview/working-with-objects/field-selectors", + "items": { + "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.SelectableField" + }, + "type": "array", + "x-kubernetes-list-type": "atomic" + }, "served": { "description": "served is a flag enabling/disabling this version from being served via REST APIs", "type": "boolean" @@ -15726,13 +17241,15 @@ "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "anyOf": { "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "default": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON", @@ -15757,7 +17274,8 @@ "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "example": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSON" @@ -15827,7 +17345,8 @@ "items": { "$ref": "#/definitions/io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaProps" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "pattern": { "type": "string" @@ -15848,7 +17367,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "title": { "type": "string" @@ -15872,7 +17392,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "x-kubernetes-list-type": { "description": "x-kubernetes-list-type annotates an array to further describe its topology. This extension must only be used on lists and may have 3 possible values:\n\n1) `atomic`: the list is treated as a single entity, like a scalar.\n Atomic lists will be entirely replaced when updated. This extension\n may be used on any type of list (struct, scalar, ...).\n2) `set`:\n Sets are lists that must not have multiple items with the same value. Each\n value must be a scalar, an object with x-kubernetes-map-type `atomic` or an\n array with x-kubernetes-list-type `atomic`.\n3) `map`:\n These lists are like maps in that their elements have a non-index key\n used to identify them. Order is preserved upon merge. The map tag\n must only be used on a list with elements of type object.\nDefaults to atomic for arrays.", @@ -15911,6 +17432,19 @@ "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.JSONSchemaPropsOrStringArray": { "description": "JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array." }, + "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.SelectableField": { + "description": "SelectableField specifies the JSON path of a field that may be used with field selectors.", + "properties": { + "jsonPath": { + "description": "jsonPath is a simple JSON path which is evaluated against each custom resource to produce a field selector value. Only JSON paths without the array notation are allowed. Must point to a field of type string, boolean or integer. Types with enum values and strings with formats are allowed. If jsonPath refers to absent field in a resource, the jsonPath evaluates to an empty string. Must not point to metdata fields. Required.", + "type": "string" + } + }, + "required": [ + "jsonPath" + ], + "type": "object" + }, "io.k8s.apiextensions-apiserver.pkg.apis.apiextensions.v1.ServiceReference": { "description": "ServiceReference holds a reference to Service.legacy.k8s.io", "properties": { @@ -16002,7 +17536,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16038,14 +17573,16 @@ "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "versions": { "description": "versions are the versions supported in this group.", "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.GroupVersionForDiscovery" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16073,7 +17610,8 @@ "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "kind": { "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", @@ -16100,7 +17638,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "group": { "description": "group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale\".", @@ -16123,7 +17662,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "singularName": { "description": "singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.", @@ -16174,7 +17714,8 @@ "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResource" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16206,14 +17747,16 @@ "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ServerAddressByClientCIDR" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "versions": { "description": "versions are the api versions that are available.", "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16279,7 +17822,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "gracePeriodSeconds": { "description": "The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.", @@ -16594,6 +18138,11 @@ "group": "storage.k8s.io", "kind": "DeleteOptions", "version": "v1beta1" + }, + { + "group": "storagemigration.k8s.io", + "kind": "DeleteOptions", + "version": "v1alpha1" } ] }, @@ -16627,7 +18176,8 @@ "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.LabelSelectorRequirement" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "matchLabels": { "additionalProperties": { @@ -16656,7 +18206,8 @@ "items": { "type": "string" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" } }, "required": [ @@ -16756,6 +18307,7 @@ "type": "string" }, "type": "array", + "x-kubernetes-list-type": "set", "x-kubernetes-patch-strategy": "merge" }, "generateName": { @@ -16779,7 +18331,8 @@ "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "name": { "description": "Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names#names", @@ -16795,6 +18348,10 @@ "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference" }, "type": "array", + "x-kubernetes-list-map-keys": [ + "uid" + ], + "x-kubernetes-list-type": "map", "x-kubernetes-patch-merge-key": "uid", "x-kubernetes-patch-strategy": "merge" }, @@ -16900,7 +18457,8 @@ }, "details": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusDetails", - "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type." + "description": "Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.", + "x-kubernetes-list-type": "atomic" }, "kind": { "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", @@ -16963,7 +18521,8 @@ "items": { "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.StatusCause" }, - "type": "array" + "type": "array", + "x-kubernetes-list-type": "atomic" }, "group": { "description": "The group attribute of the resource associated with the status StatusReason.", @@ -17300,6 +18859,11 @@ "group": "storage.k8s.io", "kind": "WatchEvent", "version": "v1beta1" + }, + { + "group": "storagemigration.k8s.io", + "kind": "WatchEvent", + "version": "v1alpha1" } ] }, @@ -34208,6 +35772,1151 @@ } } }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ValidatingAdmissionPolicy", + "operationId": "deleteAdmissionregistrationV1CollectionValidatingAdmissionPolicy", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ValidatingAdmissionPolicy", + "operationId": "listAdmissionregistrationV1ValidatingAdmissionPolicy", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ValidatingAdmissionPolicy", + "operationId": "createAdmissionregistrationV1ValidatingAdmissionPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ValidatingAdmissionPolicy", + "operationId": "deleteAdmissionregistrationV1ValidatingAdmissionPolicy", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ValidatingAdmissionPolicy", + "operationId": "readAdmissionregistrationV1ValidatingAdmissionPolicy", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ValidatingAdmissionPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ValidatingAdmissionPolicy", + "operationId": "patchAdmissionregistrationV1ValidatingAdmissionPolicy", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ValidatingAdmissionPolicy", + "operationId": "replaceAdmissionregistrationV1ValidatingAdmissionPolicy", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicies/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified ValidatingAdmissionPolicy", + "operationId": "readAdmissionregistrationV1ValidatingAdmissionPolicyStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ValidatingAdmissionPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified ValidatingAdmissionPolicy", + "operationId": "patchAdmissionregistrationV1ValidatingAdmissionPolicyStatus", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified ValidatingAdmissionPolicy", + "operationId": "replaceAdmissionregistrationV1ValidatingAdmissionPolicyStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicy" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ValidatingAdmissionPolicyBinding", + "operationId": "deleteAdmissionregistrationV1CollectionValidatingAdmissionPolicyBinding", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ValidatingAdmissionPolicyBinding", + "operationId": "listAdmissionregistrationV1ValidatingAdmissionPolicyBinding", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBindingList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ValidatingAdmissionPolicyBinding", + "operationId": "createAdmissionregistrationV1ValidatingAdmissionPolicyBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + } + }, + "/apis/admissionregistration.k8s.io/v1/validatingadmissionpolicybindings/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ValidatingAdmissionPolicyBinding", + "operationId": "deleteAdmissionregistrationV1ValidatingAdmissionPolicyBinding", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ValidatingAdmissionPolicyBinding", + "operationId": "readAdmissionregistrationV1ValidatingAdmissionPolicyBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "parameters": [ + { + "description": "name of the ValidatingAdmissionPolicyBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ValidatingAdmissionPolicyBinding", + "operationId": "patchAdmissionregistrationV1ValidatingAdmissionPolicyBinding", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ValidatingAdmissionPolicyBinding", + "operationId": "replaceAdmissionregistrationV1ValidatingAdmissionPolicyBinding", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.admissionregistration.v1.ValidatingAdmissionPolicyBinding" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + } + }, "/apis/admissionregistration.k8s.io/v1/validatingwebhookconfigurations": { "delete": { "consumes": [ @@ -34843,6 +37552,318 @@ } ] }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ValidatingAdmissionPolicy. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAdmissionregistrationV1ValidatingAdmissionPolicyList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicies/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ValidatingAdmissionPolicy. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAdmissionregistrationV1ValidatingAdmissionPolicy", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicy", + "version": "v1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "description": "name of the ValidatingAdmissionPolicy", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ValidatingAdmissionPolicyBinding. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchAdmissionregistrationV1ValidatingAdmissionPolicyBindingList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/admissionregistration.k8s.io/v1/watch/validatingadmissionpolicybindings/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ValidatingAdmissionPolicyBinding. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchAdmissionregistrationV1ValidatingAdmissionPolicyBinding", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "admissionregistration_v1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "admissionregistration.k8s.io", + "kind": "ValidatingAdmissionPolicyBinding", + "version": "v1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "description": "name of the ValidatingAdmissionPolicyBinding", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, "/apis/admissionregistration.k8s.io/v1/watch/validatingwebhookconfigurations": { "get": { "consumes": [ @@ -68071,6 +71092,491 @@ } } }, + "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ResourceClaimParameters", + "operationId": "deleteResourceV1alpha2CollectionNamespacedResourceClaimParameters", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceClaimParameters", + "operationId": "listResourceV1alpha2NamespacedResourceClaimParameters", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParametersList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create ResourceClaimParameters", + "operationId": "createResourceV1alpha2NamespacedResourceClaimParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + } + }, + "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaimparameters/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete ResourceClaimParameters", + "operationId": "deleteResourceV1alpha2NamespacedResourceClaimParameters", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ResourceClaimParameters", + "operationId": "readResourceV1alpha2NamespacedResourceClaimParameters", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "name of the ResourceClaimParameters", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ResourceClaimParameters", + "operationId": "patchResourceV1alpha2NamespacedResourceClaimParameters", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ResourceClaimParameters", + "operationId": "replaceResourceV1alpha2NamespacedResourceClaimParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + } + }, "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclaims": { "delete": { "consumes": [ @@ -69231,6 +72737,491 @@ } } }, + "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ResourceClassParameters", + "operationId": "deleteResourceV1alpha2CollectionNamespacedResourceClassParameters", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceClassParameters", + "operationId": "listResourceV1alpha2NamespacedResourceClassParameters", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParametersList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create ResourceClassParameters", + "operationId": "createResourceV1alpha2NamespacedResourceClassParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + } + }, + "/apis/resource.k8s.io/v1alpha2/namespaces/{namespace}/resourceclassparameters/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete ResourceClassParameters", + "operationId": "deleteResourceV1alpha2NamespacedResourceClassParameters", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ResourceClassParameters", + "operationId": "readResourceV1alpha2NamespacedResourceClassParameters", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "name of the ResourceClassParameters", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ResourceClassParameters", + "operationId": "patchResourceV1alpha2NamespacedResourceClassParameters", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ResourceClassParameters", + "operationId": "replaceResourceV1alpha2NamespacedResourceClassParameters", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParameters" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + } + }, "/apis/resource.k8s.io/v1alpha2/podschedulingcontexts": { "get": { "consumes": [ @@ -69305,6 +73296,80 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/resourceclaimparameters": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceClaimParameters", + "operationId": "listResourceV1alpha2ResourceClaimParametersForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClaimParametersList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, "/apis/resource.k8s.io/v1alpha2/resourceclaims": { "get": { "consumes": [ @@ -69932,6 +73997,559 @@ } } }, + "/apis/resource.k8s.io/v1alpha2/resourceclassparameters": { + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceClassParameters", + "operationId": "listResourceV1alpha2ResourceClassParametersForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceClassParametersList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/resourceslices": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of ResourceSlice", + "operationId": "deleteResourceV1alpha2CollectionResourceSlice", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind ResourceSlice", + "operationId": "listResourceV1alpha2ResourceSlice", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSliceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a ResourceSlice", + "operationId": "createResourceV1alpha2ResourceSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + } + }, + "/apis/resource.k8s.io/v1alpha2/resourceslices/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a ResourceSlice", + "operationId": "deleteResourceV1alpha2ResourceSlice", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified ResourceSlice", + "operationId": "readResourceV1alpha2ResourceSlice", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "description": "name of the ResourceSlice", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified ResourceSlice", + "operationId": "patchResourceV1alpha2ResourceSlice", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified ResourceSlice", + "operationId": "replaceResourceV1alpha2ResourceSlice", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.resource.v1alpha2.ResourceSlice" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + } + }, "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/podschedulingcontexts": { "get": { "consumes": [ @@ -70094,6 +74712,168 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclaimparameters": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ResourceClaimParameters. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchResourceV1alpha2NamespacedResourceClaimParametersList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclaimparameters/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ResourceClaimParameters. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchResourceV1alpha2NamespacedResourceClaimParameters", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "description": "name of the ResourceClaimParameters", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclaims": { "get": { "consumes": [ @@ -70418,6 +75198,168 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclassparameters": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ResourceClassParameters. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchResourceV1alpha2NamespacedResourceClassParametersList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/watch/namespaces/{namespace}/resourceclassparameters/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ResourceClassParameters. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchResourceV1alpha2NamespacedResourceClassParameters", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "description": "name of the ResourceClassParameters", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/namespace-vgWSWtn3" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, "/apis/resource.k8s.io/v1alpha2/watch/podschedulingcontexts": { "get": { "consumes": [ @@ -70492,6 +75434,80 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/watch/resourceclaimparameters": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ResourceClaimParameters. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchResourceV1alpha2ResourceClaimParametersListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClaimParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, "/apis/resource.k8s.io/v1alpha2/watch/resourceclaims": { "get": { "consumes": [ @@ -70796,6 +75812,236 @@ } ] }, + "/apis/resource.k8s.io/v1alpha2/watch/resourceclassparameters": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ResourceClassParameters. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchResourceV1alpha2ResourceClassParametersListForAllNamespaces", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceClassParameters", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/watch/resourceslices": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of ResourceSlice. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchResourceV1alpha2ResourceSliceList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/resource.k8s.io/v1alpha2/watch/resourceslices/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind ResourceSlice. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchResourceV1alpha2ResourceSlice", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "resource_v1alpha2" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "resource.k8s.io", + "kind": "ResourceSlice", + "version": "v1alpha2" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "description": "name of the ResourceSlice", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, "/apis/scheduling.k8s.io/": { "get": { "consumes": [ @@ -75753,6 +80999,894 @@ } ] }, + "/apis/storagemigration.k8s.io/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get information of a group", + "operationId": "getStoragemigrationAPIGroup", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIGroup" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration" + ] + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/": { + "get": { + "consumes": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "description": "get available resources", + "operationId": "getStoragemigrationV1alpha1APIResources", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.APIResourceList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ] + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete collection of StorageVersionMigration", + "operationId": "deleteStoragemigrationV1alpha1CollectionStorageVersionMigration", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "deletecollection", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "list or watch objects of kind StorageVersionMigration", + "operationId": "listStoragemigrationV1alpha1StorageVersionMigration", + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigrationList" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "list", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "post": { + "consumes": [ + "*/*" + ], + "description": "create a StorageVersionMigration", + "operationId": "createStoragemigrationV1alpha1StorageVersionMigration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "post", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}": { + "delete": { + "consumes": [ + "*/*" + ], + "description": "delete a StorageVersionMigration", + "operationId": "deleteStoragemigrationV1alpha1StorageVersionMigration", + "parameters": [ + { + "$ref": "#/parameters/body-2Y1dVQaQ" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/gracePeriodSeconds--K5HaBOS" + }, + { + "$ref": "#/parameters/orphanDependents-uRB25kX5" + }, + { + "$ref": "#/parameters/propagationPolicy-6jk3prlO" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "202": { + "description": "Accepted", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.Status" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "delete", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "get": { + "consumes": [ + "*/*" + ], + "description": "read the specified StorageVersionMigration", + "operationId": "readStoragemigrationV1alpha1StorageVersionMigration", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "description": "name of the StorageVersionMigration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update the specified StorageVersionMigration", + "operationId": "patchStoragemigrationV1alpha1StorageVersionMigration", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace the specified StorageVersionMigration", + "operationId": "replaceStoragemigrationV1alpha1StorageVersionMigration", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/storageversionmigrations/{name}/status": { + "get": { + "consumes": [ + "*/*" + ], + "description": "read status of the specified StorageVersionMigration", + "operationId": "readStoragemigrationV1alpha1StorageVersionMigrationStatus", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "get", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "description": "name of the StorageVersionMigration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + } + ], + "patch": { + "consumes": [ + "application/json-patch+json", + "application/merge-patch+json", + "application/strategic-merge-patch+json", + "application/apply-patch+yaml" + ], + "description": "partially update status of the specified StorageVersionMigration", + "operationId": "patchStoragemigrationV1alpha1StorageVersionMigrationStatus", + "parameters": [ + { + "$ref": "#/parameters/body-78PwaGsr" + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-7c6nTn1T" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/force-tOGGb0Yi" + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "patch", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "put": { + "consumes": [ + "*/*" + ], + "description": "replace status of the specified StorageVersionMigration", + "operationId": "replaceStoragemigrationV1alpha1StorageVersionMigrationStatus", + "parameters": [ + { + "in": "body", + "name": "body", + "required": true, + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + { + "description": "When present, indicates that modifications should not be persisted. An invalid or unrecognized dryRun directive will result in an error response and no further processing of the request. Valid values are: - All: all dry run stages will be processed", + "in": "query", + "name": "dryRun", + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/fieldManager-Qy4HdaTW" + }, + { + "description": "fieldValidation instructs the server on how to handle objects in the request (POST/PUT/PATCH) containing unknown or duplicate fields. Valid values are: - Ignore: This will ignore any unknown fields that are silently dropped from the object, and will ignore all but the last duplicate field that the decoder encounters. This is the default behavior prior to v1.23. - Warn: This will send a warning via the standard warning response header for each unknown field that is dropped from the object, and for each duplicate field that is encountered. The request will still succeed if there are no other errors, and will only persist the last of any duplicate fields. This is the default in v1.23+ - Strict: This will fail the request with a BadRequest error if any unknown fields would be dropped from the object, or if any duplicate fields are present. The error returned from the server will contain all unknown and duplicate fields encountered.", + "in": "query", + "name": "fieldValidation", + "type": "string", + "uniqueItems": true + } + ], + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/io.k8s.api.storagemigration.v1alpha1.StorageVersionMigration" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "put", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + } + }, + "/apis/storagemigration.k8s.io/v1alpha1/watch/storageversionmigrations": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch individual changes to a list of StorageVersionMigration. deprecated: use the 'watch' parameter with a list operation instead.", + "operationId": "watchStoragemigrationV1alpha1StorageVersionMigrationList", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "watchlist", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, + "/apis/storagemigration.k8s.io/v1alpha1/watch/storageversionmigrations/{name}": { + "get": { + "consumes": [ + "*/*" + ], + "description": "watch changes to an object of kind StorageVersionMigration. deprecated: use the 'watch' parameter with a list operation instead, filtered to a single item with the 'fieldSelector' parameter.", + "operationId": "watchStoragemigrationV1alpha1StorageVersionMigration", + "produces": [ + "application/json", + "application/yaml", + "application/vnd.kubernetes.protobuf", + "application/json;stream=watch", + "application/vnd.kubernetes.protobuf;stream=watch" + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/io.k8s.apimachinery.pkg.apis.meta.v1.WatchEvent" + } + }, + "401": { + "description": "Unauthorized" + } + }, + "schemes": [ + "https" + ], + "tags": [ + "storagemigration_v1alpha1" + ], + "x-kubernetes-action": "watch", + "x-kubernetes-group-version-kind": { + "group": "storagemigration.k8s.io", + "kind": "StorageVersionMigration", + "version": "v1alpha1" + } + }, + "parameters": [ + { + "$ref": "#/parameters/allowWatchBookmarks-HC2hJt-J" + }, + { + "$ref": "#/parameters/continue-QfD61s0i" + }, + { + "$ref": "#/parameters/fieldSelector-xIcQKXFG" + }, + { + "$ref": "#/parameters/labelSelector-5Zw57w4C" + }, + { + "$ref": "#/parameters/limit-1NfNmdNH" + }, + { + "description": "name of the StorageVersionMigration", + "in": "path", + "name": "name", + "required": true, + "type": "string", + "uniqueItems": true + }, + { + "$ref": "#/parameters/pretty-tJGM1-ng" + }, + { + "$ref": "#/parameters/resourceVersion-5WAnf1kx" + }, + { + "$ref": "#/parameters/resourceVersionMatch-t8XhRHeC" + }, + { + "$ref": "#/parameters/sendInitialEvents-rLXlEK_k" + }, + { + "$ref": "#/parameters/timeoutSeconds-yvYezaOC" + }, + { + "$ref": "#/parameters/watch-XNNPZGbK" + } + ] + }, "/logs/": { "get": { "operationId": "logFileListHandler", diff --git a/kubernetes/unit-test/test_v1_app_armor_profile.c b/kubernetes/unit-test/test_v1_app_armor_profile.c new file mode 100644 index 0000000..3176d7f --- /dev/null +++ b/kubernetes/unit-test/test_v1_app_armor_profile.c @@ -0,0 +1,60 @@ +#ifndef v1_app_armor_profile_TEST +#define v1_app_armor_profile_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_app_armor_profile_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_app_armor_profile.h" +v1_app_armor_profile_t* instantiate_v1_app_armor_profile(int include_optional); + + + +v1_app_armor_profile_t* instantiate_v1_app_armor_profile(int include_optional) { + v1_app_armor_profile_t* v1_app_armor_profile = NULL; + if (include_optional) { + v1_app_armor_profile = v1_app_armor_profile_create( + "0", + "0" + ); + } else { + v1_app_armor_profile = v1_app_armor_profile_create( + "0", + "0" + ); + } + + return v1_app_armor_profile; +} + + +#ifdef v1_app_armor_profile_MAIN + +void test_v1_app_armor_profile(int include_optional) { + v1_app_armor_profile_t* v1_app_armor_profile_1 = instantiate_v1_app_armor_profile(include_optional); + + cJSON* jsonv1_app_armor_profile_1 = v1_app_armor_profile_convertToJSON(v1_app_armor_profile_1); + printf("v1_app_armor_profile :\n%s\n", cJSON_Print(jsonv1_app_armor_profile_1)); + v1_app_armor_profile_t* v1_app_armor_profile_2 = v1_app_armor_profile_parseFromJSON(jsonv1_app_armor_profile_1); + cJSON* jsonv1_app_armor_profile_2 = v1_app_armor_profile_convertToJSON(v1_app_armor_profile_2); + printf("repeating v1_app_armor_profile:\n%s\n", cJSON_Print(jsonv1_app_armor_profile_2)); +} + +int main() { + test_v1_app_armor_profile(1); + test_v1_app_armor_profile(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_app_armor_profile_MAIN +#endif // v1_app_armor_profile_TEST diff --git a/kubernetes/unit-test/test_v1_audit_annotation.c b/kubernetes/unit-test/test_v1_audit_annotation.c new file mode 100644 index 0000000..d38a3df --- /dev/null +++ b/kubernetes/unit-test/test_v1_audit_annotation.c @@ -0,0 +1,60 @@ +#ifndef v1_audit_annotation_TEST +#define v1_audit_annotation_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_audit_annotation_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_audit_annotation.h" +v1_audit_annotation_t* instantiate_v1_audit_annotation(int include_optional); + + + +v1_audit_annotation_t* instantiate_v1_audit_annotation(int include_optional) { + v1_audit_annotation_t* v1_audit_annotation = NULL; + if (include_optional) { + v1_audit_annotation = v1_audit_annotation_create( + "0", + "0" + ); + } else { + v1_audit_annotation = v1_audit_annotation_create( + "0", + "0" + ); + } + + return v1_audit_annotation; +} + + +#ifdef v1_audit_annotation_MAIN + +void test_v1_audit_annotation(int include_optional) { + v1_audit_annotation_t* v1_audit_annotation_1 = instantiate_v1_audit_annotation(include_optional); + + cJSON* jsonv1_audit_annotation_1 = v1_audit_annotation_convertToJSON(v1_audit_annotation_1); + printf("v1_audit_annotation :\n%s\n", cJSON_Print(jsonv1_audit_annotation_1)); + v1_audit_annotation_t* v1_audit_annotation_2 = v1_audit_annotation_parseFromJSON(jsonv1_audit_annotation_1); + cJSON* jsonv1_audit_annotation_2 = v1_audit_annotation_convertToJSON(v1_audit_annotation_2); + printf("repeating v1_audit_annotation:\n%s\n", cJSON_Print(jsonv1_audit_annotation_2)); +} + +int main() { + test_v1_audit_annotation(1); + test_v1_audit_annotation(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_audit_annotation_MAIN +#endif // v1_audit_annotation_TEST diff --git a/kubernetes/unit-test/test_v1_container_status.c b/kubernetes/unit-test/test_v1_container_status.c index 0ac24b1..c3f93eb 100644 --- a/kubernetes/unit-test/test_v1_container_status.c +++ b/kubernetes/unit-test/test_v1_container_status.c @@ -38,7 +38,8 @@ v1_container_status_t* instantiate_v1_container_status(int include_optional) { 56, 1, // false, not to have infinite recursion - instantiate_v1_container_state(0) + instantiate_v1_container_state(0), + list_createList() ); } else { v1_container_status = v1_container_status_create( @@ -52,7 +53,8 @@ v1_container_status_t* instantiate_v1_container_status(int include_optional) { NULL, 56, 1, - NULL + NULL, + list_createList() ); } diff --git a/kubernetes/unit-test/test_v1_custom_resource_definition_version.c b/kubernetes/unit-test/test_v1_custom_resource_definition_version.c index c514c29..31fb20c 100644 --- a/kubernetes/unit-test/test_v1_custom_resource_definition_version.c +++ b/kubernetes/unit-test/test_v1_custom_resource_definition_version.c @@ -30,6 +30,7 @@ v1_custom_resource_definition_version_t* instantiate_v1_custom_resource_definiti "0", // false, not to have infinite recursion instantiate_v1_custom_resource_validation(0), + list_createList(), 1, 1, // false, not to have infinite recursion @@ -42,6 +43,7 @@ v1_custom_resource_definition_version_t* instantiate_v1_custom_resource_definiti "0", "0", NULL, + list_createList(), 1, 1, NULL diff --git a/kubernetes/unit-test/test_v1_expression_warning.c b/kubernetes/unit-test/test_v1_expression_warning.c new file mode 100644 index 0000000..b8aca4a --- /dev/null +++ b/kubernetes/unit-test/test_v1_expression_warning.c @@ -0,0 +1,60 @@ +#ifndef v1_expression_warning_TEST +#define v1_expression_warning_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_expression_warning_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_expression_warning.h" +v1_expression_warning_t* instantiate_v1_expression_warning(int include_optional); + + + +v1_expression_warning_t* instantiate_v1_expression_warning(int include_optional) { + v1_expression_warning_t* v1_expression_warning = NULL; + if (include_optional) { + v1_expression_warning = v1_expression_warning_create( + "0", + "0" + ); + } else { + v1_expression_warning = v1_expression_warning_create( + "0", + "0" + ); + } + + return v1_expression_warning; +} + + +#ifdef v1_expression_warning_MAIN + +void test_v1_expression_warning(int include_optional) { + v1_expression_warning_t* v1_expression_warning_1 = instantiate_v1_expression_warning(include_optional); + + cJSON* jsonv1_expression_warning_1 = v1_expression_warning_convertToJSON(v1_expression_warning_1); + printf("v1_expression_warning :\n%s\n", cJSON_Print(jsonv1_expression_warning_1)); + v1_expression_warning_t* v1_expression_warning_2 = v1_expression_warning_parseFromJSON(jsonv1_expression_warning_1); + cJSON* jsonv1_expression_warning_2 = v1_expression_warning_convertToJSON(v1_expression_warning_2); + printf("repeating v1_expression_warning:\n%s\n", cJSON_Print(jsonv1_expression_warning_2)); +} + +int main() { + test_v1_expression_warning(1); + test_v1_expression_warning(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_expression_warning_MAIN +#endif // v1_expression_warning_TEST diff --git a/kubernetes/unit-test/test_v1_job_spec.c b/kubernetes/unit-test/test_v1_job_spec.c index cbc8945..1d6596d 100644 --- a/kubernetes/unit-test/test_v1_job_spec.c +++ b/kubernetes/unit-test/test_v1_job_spec.c @@ -18,6 +18,7 @@ v1_job_spec_t* instantiate_v1_job_spec(int include_optional); #include "test_v1_pod_failure_policy.c" #include "test_v1_label_selector.c" +#include "test_v1_success_policy.c" #include "test_v1_pod_template_spec.c" @@ -30,6 +31,7 @@ v1_job_spec_t* instantiate_v1_job_spec(int include_optional) { 56, "0", 56, + "0", 1, 56, 56, @@ -38,6 +40,8 @@ v1_job_spec_t* instantiate_v1_job_spec(int include_optional) { "0", // false, not to have infinite recursion instantiate_v1_label_selector(0), + // false, not to have infinite recursion + instantiate_v1_success_policy(0), 1, // false, not to have infinite recursion instantiate_v1_pod_template_spec(0), @@ -50,12 +54,14 @@ v1_job_spec_t* instantiate_v1_job_spec(int include_optional) { 56, "0", 56, + "0", 1, 56, 56, NULL, "0", NULL, + NULL, 1, NULL, 56 diff --git a/kubernetes/unit-test/test_v1_match_resources.c b/kubernetes/unit-test/test_v1_match_resources.c new file mode 100644 index 0000000..767f55f --- /dev/null +++ b/kubernetes/unit-test/test_v1_match_resources.c @@ -0,0 +1,70 @@ +#ifndef v1_match_resources_TEST +#define v1_match_resources_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_match_resources_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_match_resources.h" +v1_match_resources_t* instantiate_v1_match_resources(int include_optional); + +#include "test_v1_label_selector.c" +#include "test_v1_label_selector.c" + + +v1_match_resources_t* instantiate_v1_match_resources(int include_optional) { + v1_match_resources_t* v1_match_resources = NULL; + if (include_optional) { + v1_match_resources = v1_match_resources_create( + list_createList(), + "0", + // false, not to have infinite recursion + instantiate_v1_label_selector(0), + // false, not to have infinite recursion + instantiate_v1_label_selector(0), + list_createList() + ); + } else { + v1_match_resources = v1_match_resources_create( + list_createList(), + "0", + NULL, + NULL, + list_createList() + ); + } + + return v1_match_resources; +} + + +#ifdef v1_match_resources_MAIN + +void test_v1_match_resources(int include_optional) { + v1_match_resources_t* v1_match_resources_1 = instantiate_v1_match_resources(include_optional); + + cJSON* jsonv1_match_resources_1 = v1_match_resources_convertToJSON(v1_match_resources_1); + printf("v1_match_resources :\n%s\n", cJSON_Print(jsonv1_match_resources_1)); + v1_match_resources_t* v1_match_resources_2 = v1_match_resources_parseFromJSON(jsonv1_match_resources_1); + cJSON* jsonv1_match_resources_2 = v1_match_resources_convertToJSON(v1_match_resources_2); + printf("repeating v1_match_resources:\n%s\n", cJSON_Print(jsonv1_match_resources_2)); +} + +int main() { + test_v1_match_resources(1); + test_v1_match_resources(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_match_resources_MAIN +#endif // v1_match_resources_TEST diff --git a/kubernetes/unit-test/test_v1_named_rule_with_operations.c b/kubernetes/unit-test/test_v1_named_rule_with_operations.c new file mode 100644 index 0000000..c7c6e65 --- /dev/null +++ b/kubernetes/unit-test/test_v1_named_rule_with_operations.c @@ -0,0 +1,68 @@ +#ifndef v1_named_rule_with_operations_TEST +#define v1_named_rule_with_operations_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_named_rule_with_operations_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_named_rule_with_operations.h" +v1_named_rule_with_operations_t* instantiate_v1_named_rule_with_operations(int include_optional); + + + +v1_named_rule_with_operations_t* instantiate_v1_named_rule_with_operations(int include_optional) { + v1_named_rule_with_operations_t* v1_named_rule_with_operations = NULL; + if (include_optional) { + v1_named_rule_with_operations = v1_named_rule_with_operations_create( + list_createList(), + list_createList(), + list_createList(), + list_createList(), + list_createList(), + "0" + ); + } else { + v1_named_rule_with_operations = v1_named_rule_with_operations_create( + list_createList(), + list_createList(), + list_createList(), + list_createList(), + list_createList(), + "0" + ); + } + + return v1_named_rule_with_operations; +} + + +#ifdef v1_named_rule_with_operations_MAIN + +void test_v1_named_rule_with_operations(int include_optional) { + v1_named_rule_with_operations_t* v1_named_rule_with_operations_1 = instantiate_v1_named_rule_with_operations(include_optional); + + cJSON* jsonv1_named_rule_with_operations_1 = v1_named_rule_with_operations_convertToJSON(v1_named_rule_with_operations_1); + printf("v1_named_rule_with_operations :\n%s\n", cJSON_Print(jsonv1_named_rule_with_operations_1)); + v1_named_rule_with_operations_t* v1_named_rule_with_operations_2 = v1_named_rule_with_operations_parseFromJSON(jsonv1_named_rule_with_operations_1); + cJSON* jsonv1_named_rule_with_operations_2 = v1_named_rule_with_operations_convertToJSON(v1_named_rule_with_operations_2); + printf("repeating v1_named_rule_with_operations:\n%s\n", cJSON_Print(jsonv1_named_rule_with_operations_2)); +} + +int main() { + test_v1_named_rule_with_operations(1); + test_v1_named_rule_with_operations(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_named_rule_with_operations_MAIN +#endif // v1_named_rule_with_operations_TEST diff --git a/kubernetes/unit-test/test_v1_node_runtime_handler.c b/kubernetes/unit-test/test_v1_node_runtime_handler.c new file mode 100644 index 0000000..cef243f --- /dev/null +++ b/kubernetes/unit-test/test_v1_node_runtime_handler.c @@ -0,0 +1,62 @@ +#ifndef v1_node_runtime_handler_TEST +#define v1_node_runtime_handler_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_node_runtime_handler_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_node_runtime_handler.h" +v1_node_runtime_handler_t* instantiate_v1_node_runtime_handler(int include_optional); + +#include "test_v1_node_runtime_handler_features.c" + + +v1_node_runtime_handler_t* instantiate_v1_node_runtime_handler(int include_optional) { + v1_node_runtime_handler_t* v1_node_runtime_handler = NULL; + if (include_optional) { + v1_node_runtime_handler = v1_node_runtime_handler_create( + // false, not to have infinite recursion + instantiate_v1_node_runtime_handler_features(0), + "0" + ); + } else { + v1_node_runtime_handler = v1_node_runtime_handler_create( + NULL, + "0" + ); + } + + return v1_node_runtime_handler; +} + + +#ifdef v1_node_runtime_handler_MAIN + +void test_v1_node_runtime_handler(int include_optional) { + v1_node_runtime_handler_t* v1_node_runtime_handler_1 = instantiate_v1_node_runtime_handler(include_optional); + + cJSON* jsonv1_node_runtime_handler_1 = v1_node_runtime_handler_convertToJSON(v1_node_runtime_handler_1); + printf("v1_node_runtime_handler :\n%s\n", cJSON_Print(jsonv1_node_runtime_handler_1)); + v1_node_runtime_handler_t* v1_node_runtime_handler_2 = v1_node_runtime_handler_parseFromJSON(jsonv1_node_runtime_handler_1); + cJSON* jsonv1_node_runtime_handler_2 = v1_node_runtime_handler_convertToJSON(v1_node_runtime_handler_2); + printf("repeating v1_node_runtime_handler:\n%s\n", cJSON_Print(jsonv1_node_runtime_handler_2)); +} + +int main() { + test_v1_node_runtime_handler(1); + test_v1_node_runtime_handler(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_node_runtime_handler_MAIN +#endif // v1_node_runtime_handler_TEST diff --git a/kubernetes/unit-test/test_v1_node_runtime_handler_features.c b/kubernetes/unit-test/test_v1_node_runtime_handler_features.c new file mode 100644 index 0000000..7059a69 --- /dev/null +++ b/kubernetes/unit-test/test_v1_node_runtime_handler_features.c @@ -0,0 +1,58 @@ +#ifndef v1_node_runtime_handler_features_TEST +#define v1_node_runtime_handler_features_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_node_runtime_handler_features_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_node_runtime_handler_features.h" +v1_node_runtime_handler_features_t* instantiate_v1_node_runtime_handler_features(int include_optional); + + + +v1_node_runtime_handler_features_t* instantiate_v1_node_runtime_handler_features(int include_optional) { + v1_node_runtime_handler_features_t* v1_node_runtime_handler_features = NULL; + if (include_optional) { + v1_node_runtime_handler_features = v1_node_runtime_handler_features_create( + 1 + ); + } else { + v1_node_runtime_handler_features = v1_node_runtime_handler_features_create( + 1 + ); + } + + return v1_node_runtime_handler_features; +} + + +#ifdef v1_node_runtime_handler_features_MAIN + +void test_v1_node_runtime_handler_features(int include_optional) { + v1_node_runtime_handler_features_t* v1_node_runtime_handler_features_1 = instantiate_v1_node_runtime_handler_features(include_optional); + + cJSON* jsonv1_node_runtime_handler_features_1 = v1_node_runtime_handler_features_convertToJSON(v1_node_runtime_handler_features_1); + printf("v1_node_runtime_handler_features :\n%s\n", cJSON_Print(jsonv1_node_runtime_handler_features_1)); + v1_node_runtime_handler_features_t* v1_node_runtime_handler_features_2 = v1_node_runtime_handler_features_parseFromJSON(jsonv1_node_runtime_handler_features_1); + cJSON* jsonv1_node_runtime_handler_features_2 = v1_node_runtime_handler_features_convertToJSON(v1_node_runtime_handler_features_2); + printf("repeating v1_node_runtime_handler_features:\n%s\n", cJSON_Print(jsonv1_node_runtime_handler_features_2)); +} + +int main() { + test_v1_node_runtime_handler_features(1); + test_v1_node_runtime_handler_features(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_node_runtime_handler_features_MAIN +#endif // v1_node_runtime_handler_features_TEST diff --git a/kubernetes/unit-test/test_v1_node_status.c b/kubernetes/unit-test/test_v1_node_status.c index c5f6ac2..bf20d03 100644 --- a/kubernetes/unit-test/test_v1_node_status.c +++ b/kubernetes/unit-test/test_v1_node_status.c @@ -38,6 +38,7 @@ v1_node_status_t* instantiate_v1_node_status(int include_optional) { instantiate_v1_node_system_info(0), "0", list_createList(), + list_createList(), list_createList() ); } else { @@ -52,6 +53,7 @@ v1_node_status_t* instantiate_v1_node_status(int include_optional) { NULL, "0", list_createList(), + list_createList(), list_createList() ); } diff --git a/kubernetes/unit-test/test_v1_param_kind.c b/kubernetes/unit-test/test_v1_param_kind.c new file mode 100644 index 0000000..2223737 --- /dev/null +++ b/kubernetes/unit-test/test_v1_param_kind.c @@ -0,0 +1,60 @@ +#ifndef v1_param_kind_TEST +#define v1_param_kind_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_param_kind_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_param_kind.h" +v1_param_kind_t* instantiate_v1_param_kind(int include_optional); + + + +v1_param_kind_t* instantiate_v1_param_kind(int include_optional) { + v1_param_kind_t* v1_param_kind = NULL; + if (include_optional) { + v1_param_kind = v1_param_kind_create( + "0", + "0" + ); + } else { + v1_param_kind = v1_param_kind_create( + "0", + "0" + ); + } + + return v1_param_kind; +} + + +#ifdef v1_param_kind_MAIN + +void test_v1_param_kind(int include_optional) { + v1_param_kind_t* v1_param_kind_1 = instantiate_v1_param_kind(include_optional); + + cJSON* jsonv1_param_kind_1 = v1_param_kind_convertToJSON(v1_param_kind_1); + printf("v1_param_kind :\n%s\n", cJSON_Print(jsonv1_param_kind_1)); + v1_param_kind_t* v1_param_kind_2 = v1_param_kind_parseFromJSON(jsonv1_param_kind_1); + cJSON* jsonv1_param_kind_2 = v1_param_kind_convertToJSON(v1_param_kind_2); + printf("repeating v1_param_kind:\n%s\n", cJSON_Print(jsonv1_param_kind_2)); +} + +int main() { + test_v1_param_kind(1); + test_v1_param_kind(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_param_kind_MAIN +#endif // v1_param_kind_TEST diff --git a/kubernetes/unit-test/test_v1_param_ref.c b/kubernetes/unit-test/test_v1_param_ref.c new file mode 100644 index 0000000..f4be11b --- /dev/null +++ b/kubernetes/unit-test/test_v1_param_ref.c @@ -0,0 +1,66 @@ +#ifndef v1_param_ref_TEST +#define v1_param_ref_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_param_ref_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_param_ref.h" +v1_param_ref_t* instantiate_v1_param_ref(int include_optional); + +#include "test_v1_label_selector.c" + + +v1_param_ref_t* instantiate_v1_param_ref(int include_optional) { + v1_param_ref_t* v1_param_ref = NULL; + if (include_optional) { + v1_param_ref = v1_param_ref_create( + "0", + "0", + "0", + // false, not to have infinite recursion + instantiate_v1_label_selector(0) + ); + } else { + v1_param_ref = v1_param_ref_create( + "0", + "0", + "0", + NULL + ); + } + + return v1_param_ref; +} + + +#ifdef v1_param_ref_MAIN + +void test_v1_param_ref(int include_optional) { + v1_param_ref_t* v1_param_ref_1 = instantiate_v1_param_ref(include_optional); + + cJSON* jsonv1_param_ref_1 = v1_param_ref_convertToJSON(v1_param_ref_1); + printf("v1_param_ref :\n%s\n", cJSON_Print(jsonv1_param_ref_1)); + v1_param_ref_t* v1_param_ref_2 = v1_param_ref_parseFromJSON(jsonv1_param_ref_1); + cJSON* jsonv1_param_ref_2 = v1_param_ref_convertToJSON(v1_param_ref_2); + printf("repeating v1_param_ref:\n%s\n", cJSON_Print(jsonv1_param_ref_2)); +} + +int main() { + test_v1_param_ref(1); + test_v1_param_ref(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_param_ref_MAIN +#endif // v1_param_ref_TEST diff --git a/kubernetes/unit-test/test_v1_pod_security_context.c b/kubernetes/unit-test/test_v1_pod_security_context.c index 7e6c73a..0bc77fb 100644 --- a/kubernetes/unit-test/test_v1_pod_security_context.c +++ b/kubernetes/unit-test/test_v1_pod_security_context.c @@ -16,6 +16,7 @@ #include "../model/v1_pod_security_context.h" v1_pod_security_context_t* instantiate_v1_pod_security_context(int include_optional); +#include "test_v1_app_armor_profile.c" #include "test_v1_se_linux_options.c" #include "test_v1_seccomp_profile.c" #include "test_v1_windows_security_context_options.c" @@ -25,6 +26,8 @@ v1_pod_security_context_t* instantiate_v1_pod_security_context(int include_optio v1_pod_security_context_t* v1_pod_security_context = NULL; if (include_optional) { v1_pod_security_context = v1_pod_security_context_create( + // false, not to have infinite recursion + instantiate_v1_app_armor_profile(0), 56, "0", 56, @@ -41,6 +44,7 @@ v1_pod_security_context_t* instantiate_v1_pod_security_context(int include_optio ); } else { v1_pod_security_context = v1_pod_security_context_create( + NULL, 56, "0", 56, diff --git a/kubernetes/unit-test/test_v1_security_context.c b/kubernetes/unit-test/test_v1_security_context.c index 9ffd6d3..00ebce6 100644 --- a/kubernetes/unit-test/test_v1_security_context.c +++ b/kubernetes/unit-test/test_v1_security_context.c @@ -16,6 +16,7 @@ #include "../model/v1_security_context.h" v1_security_context_t* instantiate_v1_security_context(int include_optional); +#include "test_v1_app_armor_profile.c" #include "test_v1_capabilities.c" #include "test_v1_se_linux_options.c" #include "test_v1_seccomp_profile.c" @@ -28,6 +29,8 @@ v1_security_context_t* instantiate_v1_security_context(int include_optional) { v1_security_context = v1_security_context_create( 1, // false, not to have infinite recursion + instantiate_v1_app_armor_profile(0), + // false, not to have infinite recursion instantiate_v1_capabilities(0), 1, "0", @@ -46,6 +49,7 @@ v1_security_context_t* instantiate_v1_security_context(int include_optional) { v1_security_context = v1_security_context_create( 1, NULL, + NULL, 1, "0", 1, diff --git a/kubernetes/unit-test/test_v1_selectable_field.c b/kubernetes/unit-test/test_v1_selectable_field.c new file mode 100644 index 0000000..6bbbe0c --- /dev/null +++ b/kubernetes/unit-test/test_v1_selectable_field.c @@ -0,0 +1,58 @@ +#ifndef v1_selectable_field_TEST +#define v1_selectable_field_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_selectable_field_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_selectable_field.h" +v1_selectable_field_t* instantiate_v1_selectable_field(int include_optional); + + + +v1_selectable_field_t* instantiate_v1_selectable_field(int include_optional) { + v1_selectable_field_t* v1_selectable_field = NULL; + if (include_optional) { + v1_selectable_field = v1_selectable_field_create( + "0" + ); + } else { + v1_selectable_field = v1_selectable_field_create( + "0" + ); + } + + return v1_selectable_field; +} + + +#ifdef v1_selectable_field_MAIN + +void test_v1_selectable_field(int include_optional) { + v1_selectable_field_t* v1_selectable_field_1 = instantiate_v1_selectable_field(include_optional); + + cJSON* jsonv1_selectable_field_1 = v1_selectable_field_convertToJSON(v1_selectable_field_1); + printf("v1_selectable_field :\n%s\n", cJSON_Print(jsonv1_selectable_field_1)); + v1_selectable_field_t* v1_selectable_field_2 = v1_selectable_field_parseFromJSON(jsonv1_selectable_field_1); + cJSON* jsonv1_selectable_field_2 = v1_selectable_field_convertToJSON(v1_selectable_field_2); + printf("repeating v1_selectable_field:\n%s\n", cJSON_Print(jsonv1_selectable_field_2)); +} + +int main() { + test_v1_selectable_field(1); + test_v1_selectable_field(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_selectable_field_MAIN +#endif // v1_selectable_field_TEST diff --git a/kubernetes/unit-test/test_v1_service_spec.c b/kubernetes/unit-test/test_v1_service_spec.c index 611981e..13d48a9 100644 --- a/kubernetes/unit-test/test_v1_service_spec.c +++ b/kubernetes/unit-test/test_v1_service_spec.c @@ -42,6 +42,7 @@ v1_service_spec_t* instantiate_v1_service_spec(int include_optional) { "0", // false, not to have infinite recursion instantiate_v1_session_affinity_config(0), + "0", "0" ); } else { @@ -64,6 +65,7 @@ v1_service_spec_t* instantiate_v1_service_spec(int include_optional) { list_createList(), "0", NULL, + "0", "0" ); } diff --git a/kubernetes/unit-test/test_v1_success_policy.c b/kubernetes/unit-test/test_v1_success_policy.c new file mode 100644 index 0000000..347d919 --- /dev/null +++ b/kubernetes/unit-test/test_v1_success_policy.c @@ -0,0 +1,58 @@ +#ifndef v1_success_policy_TEST +#define v1_success_policy_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_success_policy_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_success_policy.h" +v1_success_policy_t* instantiate_v1_success_policy(int include_optional); + + + +v1_success_policy_t* instantiate_v1_success_policy(int include_optional) { + v1_success_policy_t* v1_success_policy = NULL; + if (include_optional) { + v1_success_policy = v1_success_policy_create( + list_createList() + ); + } else { + v1_success_policy = v1_success_policy_create( + list_createList() + ); + } + + return v1_success_policy; +} + + +#ifdef v1_success_policy_MAIN + +void test_v1_success_policy(int include_optional) { + v1_success_policy_t* v1_success_policy_1 = instantiate_v1_success_policy(include_optional); + + cJSON* jsonv1_success_policy_1 = v1_success_policy_convertToJSON(v1_success_policy_1); + printf("v1_success_policy :\n%s\n", cJSON_Print(jsonv1_success_policy_1)); + v1_success_policy_t* v1_success_policy_2 = v1_success_policy_parseFromJSON(jsonv1_success_policy_1); + cJSON* jsonv1_success_policy_2 = v1_success_policy_convertToJSON(v1_success_policy_2); + printf("repeating v1_success_policy:\n%s\n", cJSON_Print(jsonv1_success_policy_2)); +} + +int main() { + test_v1_success_policy(1); + test_v1_success_policy(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_success_policy_MAIN +#endif // v1_success_policy_TEST diff --git a/kubernetes/unit-test/test_v1_success_policy_rule.c b/kubernetes/unit-test/test_v1_success_policy_rule.c new file mode 100644 index 0000000..25b3fab --- /dev/null +++ b/kubernetes/unit-test/test_v1_success_policy_rule.c @@ -0,0 +1,60 @@ +#ifndef v1_success_policy_rule_TEST +#define v1_success_policy_rule_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_success_policy_rule_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_success_policy_rule.h" +v1_success_policy_rule_t* instantiate_v1_success_policy_rule(int include_optional); + + + +v1_success_policy_rule_t* instantiate_v1_success_policy_rule(int include_optional) { + v1_success_policy_rule_t* v1_success_policy_rule = NULL; + if (include_optional) { + v1_success_policy_rule = v1_success_policy_rule_create( + 56, + "0" + ); + } else { + v1_success_policy_rule = v1_success_policy_rule_create( + 56, + "0" + ); + } + + return v1_success_policy_rule; +} + + +#ifdef v1_success_policy_rule_MAIN + +void test_v1_success_policy_rule(int include_optional) { + v1_success_policy_rule_t* v1_success_policy_rule_1 = instantiate_v1_success_policy_rule(include_optional); + + cJSON* jsonv1_success_policy_rule_1 = v1_success_policy_rule_convertToJSON(v1_success_policy_rule_1); + printf("v1_success_policy_rule :\n%s\n", cJSON_Print(jsonv1_success_policy_rule_1)); + v1_success_policy_rule_t* v1_success_policy_rule_2 = v1_success_policy_rule_parseFromJSON(jsonv1_success_policy_rule_1); + cJSON* jsonv1_success_policy_rule_2 = v1_success_policy_rule_convertToJSON(v1_success_policy_rule_2); + printf("repeating v1_success_policy_rule:\n%s\n", cJSON_Print(jsonv1_success_policy_rule_2)); +} + +int main() { + test_v1_success_policy_rule(1); + test_v1_success_policy_rule(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_success_policy_rule_MAIN +#endif // v1_success_policy_rule_TEST diff --git a/kubernetes/unit-test/test_v1_type_checking.c b/kubernetes/unit-test/test_v1_type_checking.c new file mode 100644 index 0000000..9882fc1 --- /dev/null +++ b/kubernetes/unit-test/test_v1_type_checking.c @@ -0,0 +1,58 @@ +#ifndef v1_type_checking_TEST +#define v1_type_checking_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_type_checking_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_type_checking.h" +v1_type_checking_t* instantiate_v1_type_checking(int include_optional); + + + +v1_type_checking_t* instantiate_v1_type_checking(int include_optional) { + v1_type_checking_t* v1_type_checking = NULL; + if (include_optional) { + v1_type_checking = v1_type_checking_create( + list_createList() + ); + } else { + v1_type_checking = v1_type_checking_create( + list_createList() + ); + } + + return v1_type_checking; +} + + +#ifdef v1_type_checking_MAIN + +void test_v1_type_checking(int include_optional) { + v1_type_checking_t* v1_type_checking_1 = instantiate_v1_type_checking(include_optional); + + cJSON* jsonv1_type_checking_1 = v1_type_checking_convertToJSON(v1_type_checking_1); + printf("v1_type_checking :\n%s\n", cJSON_Print(jsonv1_type_checking_1)); + v1_type_checking_t* v1_type_checking_2 = v1_type_checking_parseFromJSON(jsonv1_type_checking_1); + cJSON* jsonv1_type_checking_2 = v1_type_checking_convertToJSON(v1_type_checking_2); + printf("repeating v1_type_checking:\n%s\n", cJSON_Print(jsonv1_type_checking_2)); +} + +int main() { + test_v1_type_checking(1); + test_v1_type_checking(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_type_checking_MAIN +#endif // v1_type_checking_TEST diff --git a/kubernetes/unit-test/test_v1_validating_admission_policy.c b/kubernetes/unit-test/test_v1_validating_admission_policy.c new file mode 100644 index 0000000..a879a87 --- /dev/null +++ b/kubernetes/unit-test/test_v1_validating_admission_policy.c @@ -0,0 +1,72 @@ +#ifndef v1_validating_admission_policy_TEST +#define v1_validating_admission_policy_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_validating_admission_policy_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_validating_admission_policy.h" +v1_validating_admission_policy_t* instantiate_v1_validating_admission_policy(int include_optional); + +#include "test_v1_object_meta.c" +#include "test_v1_validating_admission_policy_spec.c" +#include "test_v1_validating_admission_policy_status.c" + + +v1_validating_admission_policy_t* instantiate_v1_validating_admission_policy(int include_optional) { + v1_validating_admission_policy_t* v1_validating_admission_policy = NULL; + if (include_optional) { + v1_validating_admission_policy = v1_validating_admission_policy_create( + "0", + "0", + // false, not to have infinite recursion + instantiate_v1_object_meta(0), + // false, not to have infinite recursion + instantiate_v1_validating_admission_policy_spec(0), + // false, not to have infinite recursion + instantiate_v1_validating_admission_policy_status(0) + ); + } else { + v1_validating_admission_policy = v1_validating_admission_policy_create( + "0", + "0", + NULL, + NULL, + NULL + ); + } + + return v1_validating_admission_policy; +} + + +#ifdef v1_validating_admission_policy_MAIN + +void test_v1_validating_admission_policy(int include_optional) { + v1_validating_admission_policy_t* v1_validating_admission_policy_1 = instantiate_v1_validating_admission_policy(include_optional); + + cJSON* jsonv1_validating_admission_policy_1 = v1_validating_admission_policy_convertToJSON(v1_validating_admission_policy_1); + printf("v1_validating_admission_policy :\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_1)); + v1_validating_admission_policy_t* v1_validating_admission_policy_2 = v1_validating_admission_policy_parseFromJSON(jsonv1_validating_admission_policy_1); + cJSON* jsonv1_validating_admission_policy_2 = v1_validating_admission_policy_convertToJSON(v1_validating_admission_policy_2); + printf("repeating v1_validating_admission_policy:\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_2)); +} + +int main() { + test_v1_validating_admission_policy(1); + test_v1_validating_admission_policy(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_validating_admission_policy_MAIN +#endif // v1_validating_admission_policy_TEST diff --git a/kubernetes/unit-test/test_v1_validating_admission_policy_binding.c b/kubernetes/unit-test/test_v1_validating_admission_policy_binding.c new file mode 100644 index 0000000..2c475c1 --- /dev/null +++ b/kubernetes/unit-test/test_v1_validating_admission_policy_binding.c @@ -0,0 +1,68 @@ +#ifndef v1_validating_admission_policy_binding_TEST +#define v1_validating_admission_policy_binding_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_validating_admission_policy_binding_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_validating_admission_policy_binding.h" +v1_validating_admission_policy_binding_t* instantiate_v1_validating_admission_policy_binding(int include_optional); + +#include "test_v1_object_meta.c" +#include "test_v1_validating_admission_policy_binding_spec.c" + + +v1_validating_admission_policy_binding_t* instantiate_v1_validating_admission_policy_binding(int include_optional) { + v1_validating_admission_policy_binding_t* v1_validating_admission_policy_binding = NULL; + if (include_optional) { + v1_validating_admission_policy_binding = v1_validating_admission_policy_binding_create( + "0", + "0", + // false, not to have infinite recursion + instantiate_v1_object_meta(0), + // false, not to have infinite recursion + instantiate_v1_validating_admission_policy_binding_spec(0) + ); + } else { + v1_validating_admission_policy_binding = v1_validating_admission_policy_binding_create( + "0", + "0", + NULL, + NULL + ); + } + + return v1_validating_admission_policy_binding; +} + + +#ifdef v1_validating_admission_policy_binding_MAIN + +void test_v1_validating_admission_policy_binding(int include_optional) { + v1_validating_admission_policy_binding_t* v1_validating_admission_policy_binding_1 = instantiate_v1_validating_admission_policy_binding(include_optional); + + cJSON* jsonv1_validating_admission_policy_binding_1 = v1_validating_admission_policy_binding_convertToJSON(v1_validating_admission_policy_binding_1); + printf("v1_validating_admission_policy_binding :\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_binding_1)); + v1_validating_admission_policy_binding_t* v1_validating_admission_policy_binding_2 = v1_validating_admission_policy_binding_parseFromJSON(jsonv1_validating_admission_policy_binding_1); + cJSON* jsonv1_validating_admission_policy_binding_2 = v1_validating_admission_policy_binding_convertToJSON(v1_validating_admission_policy_binding_2); + printf("repeating v1_validating_admission_policy_binding:\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_binding_2)); +} + +int main() { + test_v1_validating_admission_policy_binding(1); + test_v1_validating_admission_policy_binding(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_validating_admission_policy_binding_MAIN +#endif // v1_validating_admission_policy_binding_TEST diff --git a/kubernetes/unit-test/test_v1_validating_admission_policy_binding_list.c b/kubernetes/unit-test/test_v1_validating_admission_policy_binding_list.c new file mode 100644 index 0000000..03e2347 --- /dev/null +++ b/kubernetes/unit-test/test_v1_validating_admission_policy_binding_list.c @@ -0,0 +1,66 @@ +#ifndef v1_validating_admission_policy_binding_list_TEST +#define v1_validating_admission_policy_binding_list_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_validating_admission_policy_binding_list_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_validating_admission_policy_binding_list.h" +v1_validating_admission_policy_binding_list_t* instantiate_v1_validating_admission_policy_binding_list(int include_optional); + +#include "test_v1_list_meta.c" + + +v1_validating_admission_policy_binding_list_t* instantiate_v1_validating_admission_policy_binding_list(int include_optional) { + v1_validating_admission_policy_binding_list_t* v1_validating_admission_policy_binding_list = NULL; + if (include_optional) { + v1_validating_admission_policy_binding_list = v1_validating_admission_policy_binding_list_create( + "0", + list_createList(), + "0", + // false, not to have infinite recursion + instantiate_v1_list_meta(0) + ); + } else { + v1_validating_admission_policy_binding_list = v1_validating_admission_policy_binding_list_create( + "0", + list_createList(), + "0", + NULL + ); + } + + return v1_validating_admission_policy_binding_list; +} + + +#ifdef v1_validating_admission_policy_binding_list_MAIN + +void test_v1_validating_admission_policy_binding_list(int include_optional) { + v1_validating_admission_policy_binding_list_t* v1_validating_admission_policy_binding_list_1 = instantiate_v1_validating_admission_policy_binding_list(include_optional); + + cJSON* jsonv1_validating_admission_policy_binding_list_1 = v1_validating_admission_policy_binding_list_convertToJSON(v1_validating_admission_policy_binding_list_1); + printf("v1_validating_admission_policy_binding_list :\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_binding_list_1)); + v1_validating_admission_policy_binding_list_t* v1_validating_admission_policy_binding_list_2 = v1_validating_admission_policy_binding_list_parseFromJSON(jsonv1_validating_admission_policy_binding_list_1); + cJSON* jsonv1_validating_admission_policy_binding_list_2 = v1_validating_admission_policy_binding_list_convertToJSON(v1_validating_admission_policy_binding_list_2); + printf("repeating v1_validating_admission_policy_binding_list:\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_binding_list_2)); +} + +int main() { + test_v1_validating_admission_policy_binding_list(1); + test_v1_validating_admission_policy_binding_list(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_validating_admission_policy_binding_list_MAIN +#endif // v1_validating_admission_policy_binding_list_TEST diff --git a/kubernetes/unit-test/test_v1_validating_admission_policy_binding_spec.c b/kubernetes/unit-test/test_v1_validating_admission_policy_binding_spec.c new file mode 100644 index 0000000..7d2b720 --- /dev/null +++ b/kubernetes/unit-test/test_v1_validating_admission_policy_binding_spec.c @@ -0,0 +1,68 @@ +#ifndef v1_validating_admission_policy_binding_spec_TEST +#define v1_validating_admission_policy_binding_spec_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_validating_admission_policy_binding_spec_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_validating_admission_policy_binding_spec.h" +v1_validating_admission_policy_binding_spec_t* instantiate_v1_validating_admission_policy_binding_spec(int include_optional); + +#include "test_v1_match_resources.c" +#include "test_v1_param_ref.c" + + +v1_validating_admission_policy_binding_spec_t* instantiate_v1_validating_admission_policy_binding_spec(int include_optional) { + v1_validating_admission_policy_binding_spec_t* v1_validating_admission_policy_binding_spec = NULL; + if (include_optional) { + v1_validating_admission_policy_binding_spec = v1_validating_admission_policy_binding_spec_create( + // false, not to have infinite recursion + instantiate_v1_match_resources(0), + // false, not to have infinite recursion + instantiate_v1_param_ref(0), + "0", + list_createList() + ); + } else { + v1_validating_admission_policy_binding_spec = v1_validating_admission_policy_binding_spec_create( + NULL, + NULL, + "0", + list_createList() + ); + } + + return v1_validating_admission_policy_binding_spec; +} + + +#ifdef v1_validating_admission_policy_binding_spec_MAIN + +void test_v1_validating_admission_policy_binding_spec(int include_optional) { + v1_validating_admission_policy_binding_spec_t* v1_validating_admission_policy_binding_spec_1 = instantiate_v1_validating_admission_policy_binding_spec(include_optional); + + cJSON* jsonv1_validating_admission_policy_binding_spec_1 = v1_validating_admission_policy_binding_spec_convertToJSON(v1_validating_admission_policy_binding_spec_1); + printf("v1_validating_admission_policy_binding_spec :\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_binding_spec_1)); + v1_validating_admission_policy_binding_spec_t* v1_validating_admission_policy_binding_spec_2 = v1_validating_admission_policy_binding_spec_parseFromJSON(jsonv1_validating_admission_policy_binding_spec_1); + cJSON* jsonv1_validating_admission_policy_binding_spec_2 = v1_validating_admission_policy_binding_spec_convertToJSON(v1_validating_admission_policy_binding_spec_2); + printf("repeating v1_validating_admission_policy_binding_spec:\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_binding_spec_2)); +} + +int main() { + test_v1_validating_admission_policy_binding_spec(1); + test_v1_validating_admission_policy_binding_spec(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_validating_admission_policy_binding_spec_MAIN +#endif // v1_validating_admission_policy_binding_spec_TEST diff --git a/kubernetes/unit-test/test_v1_validating_admission_policy_list.c b/kubernetes/unit-test/test_v1_validating_admission_policy_list.c new file mode 100644 index 0000000..af526ea --- /dev/null +++ b/kubernetes/unit-test/test_v1_validating_admission_policy_list.c @@ -0,0 +1,66 @@ +#ifndef v1_validating_admission_policy_list_TEST +#define v1_validating_admission_policy_list_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_validating_admission_policy_list_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_validating_admission_policy_list.h" +v1_validating_admission_policy_list_t* instantiate_v1_validating_admission_policy_list(int include_optional); + +#include "test_v1_list_meta.c" + + +v1_validating_admission_policy_list_t* instantiate_v1_validating_admission_policy_list(int include_optional) { + v1_validating_admission_policy_list_t* v1_validating_admission_policy_list = NULL; + if (include_optional) { + v1_validating_admission_policy_list = v1_validating_admission_policy_list_create( + "0", + list_createList(), + "0", + // false, not to have infinite recursion + instantiate_v1_list_meta(0) + ); + } else { + v1_validating_admission_policy_list = v1_validating_admission_policy_list_create( + "0", + list_createList(), + "0", + NULL + ); + } + + return v1_validating_admission_policy_list; +} + + +#ifdef v1_validating_admission_policy_list_MAIN + +void test_v1_validating_admission_policy_list(int include_optional) { + v1_validating_admission_policy_list_t* v1_validating_admission_policy_list_1 = instantiate_v1_validating_admission_policy_list(include_optional); + + cJSON* jsonv1_validating_admission_policy_list_1 = v1_validating_admission_policy_list_convertToJSON(v1_validating_admission_policy_list_1); + printf("v1_validating_admission_policy_list :\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_list_1)); + v1_validating_admission_policy_list_t* v1_validating_admission_policy_list_2 = v1_validating_admission_policy_list_parseFromJSON(jsonv1_validating_admission_policy_list_1); + cJSON* jsonv1_validating_admission_policy_list_2 = v1_validating_admission_policy_list_convertToJSON(v1_validating_admission_policy_list_2); + printf("repeating v1_validating_admission_policy_list:\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_list_2)); +} + +int main() { + test_v1_validating_admission_policy_list(1); + test_v1_validating_admission_policy_list(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_validating_admission_policy_list_MAIN +#endif // v1_validating_admission_policy_list_TEST diff --git a/kubernetes/unit-test/test_v1_validating_admission_policy_spec.c b/kubernetes/unit-test/test_v1_validating_admission_policy_spec.c new file mode 100644 index 0000000..4783556 --- /dev/null +++ b/kubernetes/unit-test/test_v1_validating_admission_policy_spec.c @@ -0,0 +1,74 @@ +#ifndef v1_validating_admission_policy_spec_TEST +#define v1_validating_admission_policy_spec_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_validating_admission_policy_spec_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_validating_admission_policy_spec.h" +v1_validating_admission_policy_spec_t* instantiate_v1_validating_admission_policy_spec(int include_optional); + +#include "test_v1_match_resources.c" +#include "test_v1_param_kind.c" + + +v1_validating_admission_policy_spec_t* instantiate_v1_validating_admission_policy_spec(int include_optional) { + v1_validating_admission_policy_spec_t* v1_validating_admission_policy_spec = NULL; + if (include_optional) { + v1_validating_admission_policy_spec = v1_validating_admission_policy_spec_create( + list_createList(), + "0", + list_createList(), + // false, not to have infinite recursion + instantiate_v1_match_resources(0), + // false, not to have infinite recursion + instantiate_v1_param_kind(0), + list_createList(), + list_createList() + ); + } else { + v1_validating_admission_policy_spec = v1_validating_admission_policy_spec_create( + list_createList(), + "0", + list_createList(), + NULL, + NULL, + list_createList(), + list_createList() + ); + } + + return v1_validating_admission_policy_spec; +} + + +#ifdef v1_validating_admission_policy_spec_MAIN + +void test_v1_validating_admission_policy_spec(int include_optional) { + v1_validating_admission_policy_spec_t* v1_validating_admission_policy_spec_1 = instantiate_v1_validating_admission_policy_spec(include_optional); + + cJSON* jsonv1_validating_admission_policy_spec_1 = v1_validating_admission_policy_spec_convertToJSON(v1_validating_admission_policy_spec_1); + printf("v1_validating_admission_policy_spec :\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_spec_1)); + v1_validating_admission_policy_spec_t* v1_validating_admission_policy_spec_2 = v1_validating_admission_policy_spec_parseFromJSON(jsonv1_validating_admission_policy_spec_1); + cJSON* jsonv1_validating_admission_policy_spec_2 = v1_validating_admission_policy_spec_convertToJSON(v1_validating_admission_policy_spec_2); + printf("repeating v1_validating_admission_policy_spec:\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_spec_2)); +} + +int main() { + test_v1_validating_admission_policy_spec(1); + test_v1_validating_admission_policy_spec(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_validating_admission_policy_spec_MAIN +#endif // v1_validating_admission_policy_spec_TEST diff --git a/kubernetes/unit-test/test_v1_validating_admission_policy_status.c b/kubernetes/unit-test/test_v1_validating_admission_policy_status.c new file mode 100644 index 0000000..26edc9a --- /dev/null +++ b/kubernetes/unit-test/test_v1_validating_admission_policy_status.c @@ -0,0 +1,64 @@ +#ifndef v1_validating_admission_policy_status_TEST +#define v1_validating_admission_policy_status_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_validating_admission_policy_status_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_validating_admission_policy_status.h" +v1_validating_admission_policy_status_t* instantiate_v1_validating_admission_policy_status(int include_optional); + +#include "test_v1_type_checking.c" + + +v1_validating_admission_policy_status_t* instantiate_v1_validating_admission_policy_status(int include_optional) { + v1_validating_admission_policy_status_t* v1_validating_admission_policy_status = NULL; + if (include_optional) { + v1_validating_admission_policy_status = v1_validating_admission_policy_status_create( + list_createList(), + 56, + // false, not to have infinite recursion + instantiate_v1_type_checking(0) + ); + } else { + v1_validating_admission_policy_status = v1_validating_admission_policy_status_create( + list_createList(), + 56, + NULL + ); + } + + return v1_validating_admission_policy_status; +} + + +#ifdef v1_validating_admission_policy_status_MAIN + +void test_v1_validating_admission_policy_status(int include_optional) { + v1_validating_admission_policy_status_t* v1_validating_admission_policy_status_1 = instantiate_v1_validating_admission_policy_status(include_optional); + + cJSON* jsonv1_validating_admission_policy_status_1 = v1_validating_admission_policy_status_convertToJSON(v1_validating_admission_policy_status_1); + printf("v1_validating_admission_policy_status :\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_status_1)); + v1_validating_admission_policy_status_t* v1_validating_admission_policy_status_2 = v1_validating_admission_policy_status_parseFromJSON(jsonv1_validating_admission_policy_status_1); + cJSON* jsonv1_validating_admission_policy_status_2 = v1_validating_admission_policy_status_convertToJSON(v1_validating_admission_policy_status_2); + printf("repeating v1_validating_admission_policy_status:\n%s\n", cJSON_Print(jsonv1_validating_admission_policy_status_2)); +} + +int main() { + test_v1_validating_admission_policy_status(1); + test_v1_validating_admission_policy_status(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_validating_admission_policy_status_MAIN +#endif // v1_validating_admission_policy_status_TEST diff --git a/kubernetes/unit-test/test_v1_validation.c b/kubernetes/unit-test/test_v1_validation.c new file mode 100644 index 0000000..4fb13af --- /dev/null +++ b/kubernetes/unit-test/test_v1_validation.c @@ -0,0 +1,64 @@ +#ifndef v1_validation_TEST +#define v1_validation_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_validation_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_validation.h" +v1_validation_t* instantiate_v1_validation(int include_optional); + + + +v1_validation_t* instantiate_v1_validation(int include_optional) { + v1_validation_t* v1_validation = NULL; + if (include_optional) { + v1_validation = v1_validation_create( + "0", + "0", + "0", + "0" + ); + } else { + v1_validation = v1_validation_create( + "0", + "0", + "0", + "0" + ); + } + + return v1_validation; +} + + +#ifdef v1_validation_MAIN + +void test_v1_validation(int include_optional) { + v1_validation_t* v1_validation_1 = instantiate_v1_validation(include_optional); + + cJSON* jsonv1_validation_1 = v1_validation_convertToJSON(v1_validation_1); + printf("v1_validation :\n%s\n", cJSON_Print(jsonv1_validation_1)); + v1_validation_t* v1_validation_2 = v1_validation_parseFromJSON(jsonv1_validation_1); + cJSON* jsonv1_validation_2 = v1_validation_convertToJSON(v1_validation_2); + printf("repeating v1_validation:\n%s\n", cJSON_Print(jsonv1_validation_2)); +} + +int main() { + test_v1_validation(1); + test_v1_validation(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_validation_MAIN +#endif // v1_validation_TEST diff --git a/kubernetes/unit-test/test_v1_variable.c b/kubernetes/unit-test/test_v1_variable.c new file mode 100644 index 0000000..aa3304a --- /dev/null +++ b/kubernetes/unit-test/test_v1_variable.c @@ -0,0 +1,60 @@ +#ifndef v1_variable_TEST +#define v1_variable_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_variable_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_variable.h" +v1_variable_t* instantiate_v1_variable(int include_optional); + + + +v1_variable_t* instantiate_v1_variable(int include_optional) { + v1_variable_t* v1_variable = NULL; + if (include_optional) { + v1_variable = v1_variable_create( + "0", + "0" + ); + } else { + v1_variable = v1_variable_create( + "0", + "0" + ); + } + + return v1_variable; +} + + +#ifdef v1_variable_MAIN + +void test_v1_variable(int include_optional) { + v1_variable_t* v1_variable_1 = instantiate_v1_variable(include_optional); + + cJSON* jsonv1_variable_1 = v1_variable_convertToJSON(v1_variable_1); + printf("v1_variable :\n%s\n", cJSON_Print(jsonv1_variable_1)); + v1_variable_t* v1_variable_2 = v1_variable_parseFromJSON(jsonv1_variable_1); + cJSON* jsonv1_variable_2 = v1_variable_convertToJSON(v1_variable_2); + printf("repeating v1_variable:\n%s\n", cJSON_Print(jsonv1_variable_2)); +} + +int main() { + test_v1_variable(1); + test_v1_variable(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_variable_MAIN +#endif // v1_variable_TEST diff --git a/kubernetes/unit-test/test_v1_volume_mount.c b/kubernetes/unit-test/test_v1_volume_mount.c index cd0d6cb..17c9749 100644 --- a/kubernetes/unit-test/test_v1_volume_mount.c +++ b/kubernetes/unit-test/test_v1_volume_mount.c @@ -27,6 +27,7 @@ v1_volume_mount_t* instantiate_v1_volume_mount(int include_optional) { "0", 1, "0", + "0", "0" ); } else { @@ -36,6 +37,7 @@ v1_volume_mount_t* instantiate_v1_volume_mount(int include_optional) { "0", 1, "0", + "0", "0" ); } diff --git a/kubernetes/unit-test/test_v1_volume_mount_status.c b/kubernetes/unit-test/test_v1_volume_mount_status.c new file mode 100644 index 0000000..55f3df2 --- /dev/null +++ b/kubernetes/unit-test/test_v1_volume_mount_status.c @@ -0,0 +1,64 @@ +#ifndef v1_volume_mount_status_TEST +#define v1_volume_mount_status_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1_volume_mount_status_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1_volume_mount_status.h" +v1_volume_mount_status_t* instantiate_v1_volume_mount_status(int include_optional); + + + +v1_volume_mount_status_t* instantiate_v1_volume_mount_status(int include_optional) { + v1_volume_mount_status_t* v1_volume_mount_status = NULL; + if (include_optional) { + v1_volume_mount_status = v1_volume_mount_status_create( + "0", + "0", + 1, + "0" + ); + } else { + v1_volume_mount_status = v1_volume_mount_status_create( + "0", + "0", + 1, + "0" + ); + } + + return v1_volume_mount_status; +} + + +#ifdef v1_volume_mount_status_MAIN + +void test_v1_volume_mount_status(int include_optional) { + v1_volume_mount_status_t* v1_volume_mount_status_1 = instantiate_v1_volume_mount_status(include_optional); + + cJSON* jsonv1_volume_mount_status_1 = v1_volume_mount_status_convertToJSON(v1_volume_mount_status_1); + printf("v1_volume_mount_status :\n%s\n", cJSON_Print(jsonv1_volume_mount_status_1)); + v1_volume_mount_status_t* v1_volume_mount_status_2 = v1_volume_mount_status_parseFromJSON(jsonv1_volume_mount_status_1); + cJSON* jsonv1_volume_mount_status_2 = v1_volume_mount_status_convertToJSON(v1_volume_mount_status_2); + printf("repeating v1_volume_mount_status:\n%s\n", cJSON_Print(jsonv1_volume_mount_status_2)); +} + +int main() { + test_v1_volume_mount_status(1); + test_v1_volume_mount_status(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1_volume_mount_status_MAIN +#endif // v1_volume_mount_status_TEST diff --git a/kubernetes/unit-test/test_v1alpha1_group_version_resource.c b/kubernetes/unit-test/test_v1alpha1_group_version_resource.c new file mode 100644 index 0000000..dc92d58 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha1_group_version_resource.c @@ -0,0 +1,62 @@ +#ifndef v1alpha1_group_version_resource_TEST +#define v1alpha1_group_version_resource_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha1_group_version_resource_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha1_group_version_resource.h" +v1alpha1_group_version_resource_t* instantiate_v1alpha1_group_version_resource(int include_optional); + + + +v1alpha1_group_version_resource_t* instantiate_v1alpha1_group_version_resource(int include_optional) { + v1alpha1_group_version_resource_t* v1alpha1_group_version_resource = NULL; + if (include_optional) { + v1alpha1_group_version_resource = v1alpha1_group_version_resource_create( + "0", + "0", + "0" + ); + } else { + v1alpha1_group_version_resource = v1alpha1_group_version_resource_create( + "0", + "0", + "0" + ); + } + + return v1alpha1_group_version_resource; +} + + +#ifdef v1alpha1_group_version_resource_MAIN + +void test_v1alpha1_group_version_resource(int include_optional) { + v1alpha1_group_version_resource_t* v1alpha1_group_version_resource_1 = instantiate_v1alpha1_group_version_resource(include_optional); + + cJSON* jsonv1alpha1_group_version_resource_1 = v1alpha1_group_version_resource_convertToJSON(v1alpha1_group_version_resource_1); + printf("v1alpha1_group_version_resource :\n%s\n", cJSON_Print(jsonv1alpha1_group_version_resource_1)); + v1alpha1_group_version_resource_t* v1alpha1_group_version_resource_2 = v1alpha1_group_version_resource_parseFromJSON(jsonv1alpha1_group_version_resource_1); + cJSON* jsonv1alpha1_group_version_resource_2 = v1alpha1_group_version_resource_convertToJSON(v1alpha1_group_version_resource_2); + printf("repeating v1alpha1_group_version_resource:\n%s\n", cJSON_Print(jsonv1alpha1_group_version_resource_2)); +} + +int main() { + test_v1alpha1_group_version_resource(1); + test_v1alpha1_group_version_resource(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha1_group_version_resource_MAIN +#endif // v1alpha1_group_version_resource_TEST diff --git a/kubernetes/unit-test/test_v1alpha1_migration_condition.c b/kubernetes/unit-test/test_v1alpha1_migration_condition.c new file mode 100644 index 0000000..3c2009f --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha1_migration_condition.c @@ -0,0 +1,66 @@ +#ifndef v1alpha1_migration_condition_TEST +#define v1alpha1_migration_condition_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha1_migration_condition_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha1_migration_condition.h" +v1alpha1_migration_condition_t* instantiate_v1alpha1_migration_condition(int include_optional); + + + +v1alpha1_migration_condition_t* instantiate_v1alpha1_migration_condition(int include_optional) { + v1alpha1_migration_condition_t* v1alpha1_migration_condition = NULL; + if (include_optional) { + v1alpha1_migration_condition = v1alpha1_migration_condition_create( + "2013-10-20T19:20:30+01:00", + "0", + "0", + "0", + "0" + ); + } else { + v1alpha1_migration_condition = v1alpha1_migration_condition_create( + "2013-10-20T19:20:30+01:00", + "0", + "0", + "0", + "0" + ); + } + + return v1alpha1_migration_condition; +} + + +#ifdef v1alpha1_migration_condition_MAIN + +void test_v1alpha1_migration_condition(int include_optional) { + v1alpha1_migration_condition_t* v1alpha1_migration_condition_1 = instantiate_v1alpha1_migration_condition(include_optional); + + cJSON* jsonv1alpha1_migration_condition_1 = v1alpha1_migration_condition_convertToJSON(v1alpha1_migration_condition_1); + printf("v1alpha1_migration_condition :\n%s\n", cJSON_Print(jsonv1alpha1_migration_condition_1)); + v1alpha1_migration_condition_t* v1alpha1_migration_condition_2 = v1alpha1_migration_condition_parseFromJSON(jsonv1alpha1_migration_condition_1); + cJSON* jsonv1alpha1_migration_condition_2 = v1alpha1_migration_condition_convertToJSON(v1alpha1_migration_condition_2); + printf("repeating v1alpha1_migration_condition:\n%s\n", cJSON_Print(jsonv1alpha1_migration_condition_2)); +} + +int main() { + test_v1alpha1_migration_condition(1); + test_v1alpha1_migration_condition(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha1_migration_condition_MAIN +#endif // v1alpha1_migration_condition_TEST diff --git a/kubernetes/unit-test/test_v1alpha1_storage_version_migration.c b/kubernetes/unit-test/test_v1alpha1_storage_version_migration.c new file mode 100644 index 0000000..b102215 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha1_storage_version_migration.c @@ -0,0 +1,72 @@ +#ifndef v1alpha1_storage_version_migration_TEST +#define v1alpha1_storage_version_migration_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha1_storage_version_migration_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha1_storage_version_migration.h" +v1alpha1_storage_version_migration_t* instantiate_v1alpha1_storage_version_migration(int include_optional); + +#include "test_v1_object_meta.c" +#include "test_v1alpha1_storage_version_migration_spec.c" +#include "test_v1alpha1_storage_version_migration_status.c" + + +v1alpha1_storage_version_migration_t* instantiate_v1alpha1_storage_version_migration(int include_optional) { + v1alpha1_storage_version_migration_t* v1alpha1_storage_version_migration = NULL; + if (include_optional) { + v1alpha1_storage_version_migration = v1alpha1_storage_version_migration_create( + "0", + "0", + // false, not to have infinite recursion + instantiate_v1_object_meta(0), + // false, not to have infinite recursion + instantiate_v1alpha1_storage_version_migration_spec(0), + // false, not to have infinite recursion + instantiate_v1alpha1_storage_version_migration_status(0) + ); + } else { + v1alpha1_storage_version_migration = v1alpha1_storage_version_migration_create( + "0", + "0", + NULL, + NULL, + NULL + ); + } + + return v1alpha1_storage_version_migration; +} + + +#ifdef v1alpha1_storage_version_migration_MAIN + +void test_v1alpha1_storage_version_migration(int include_optional) { + v1alpha1_storage_version_migration_t* v1alpha1_storage_version_migration_1 = instantiate_v1alpha1_storage_version_migration(include_optional); + + cJSON* jsonv1alpha1_storage_version_migration_1 = v1alpha1_storage_version_migration_convertToJSON(v1alpha1_storage_version_migration_1); + printf("v1alpha1_storage_version_migration :\n%s\n", cJSON_Print(jsonv1alpha1_storage_version_migration_1)); + v1alpha1_storage_version_migration_t* v1alpha1_storage_version_migration_2 = v1alpha1_storage_version_migration_parseFromJSON(jsonv1alpha1_storage_version_migration_1); + cJSON* jsonv1alpha1_storage_version_migration_2 = v1alpha1_storage_version_migration_convertToJSON(v1alpha1_storage_version_migration_2); + printf("repeating v1alpha1_storage_version_migration:\n%s\n", cJSON_Print(jsonv1alpha1_storage_version_migration_2)); +} + +int main() { + test_v1alpha1_storage_version_migration(1); + test_v1alpha1_storage_version_migration(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha1_storage_version_migration_MAIN +#endif // v1alpha1_storage_version_migration_TEST diff --git a/kubernetes/unit-test/test_v1alpha1_storage_version_migration_list.c b/kubernetes/unit-test/test_v1alpha1_storage_version_migration_list.c new file mode 100644 index 0000000..99a0f12 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha1_storage_version_migration_list.c @@ -0,0 +1,66 @@ +#ifndef v1alpha1_storage_version_migration_list_TEST +#define v1alpha1_storage_version_migration_list_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha1_storage_version_migration_list_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha1_storage_version_migration_list.h" +v1alpha1_storage_version_migration_list_t* instantiate_v1alpha1_storage_version_migration_list(int include_optional); + +#include "test_v1_list_meta.c" + + +v1alpha1_storage_version_migration_list_t* instantiate_v1alpha1_storage_version_migration_list(int include_optional) { + v1alpha1_storage_version_migration_list_t* v1alpha1_storage_version_migration_list = NULL; + if (include_optional) { + v1alpha1_storage_version_migration_list = v1alpha1_storage_version_migration_list_create( + "0", + list_createList(), + "0", + // false, not to have infinite recursion + instantiate_v1_list_meta(0) + ); + } else { + v1alpha1_storage_version_migration_list = v1alpha1_storage_version_migration_list_create( + "0", + list_createList(), + "0", + NULL + ); + } + + return v1alpha1_storage_version_migration_list; +} + + +#ifdef v1alpha1_storage_version_migration_list_MAIN + +void test_v1alpha1_storage_version_migration_list(int include_optional) { + v1alpha1_storage_version_migration_list_t* v1alpha1_storage_version_migration_list_1 = instantiate_v1alpha1_storage_version_migration_list(include_optional); + + cJSON* jsonv1alpha1_storage_version_migration_list_1 = v1alpha1_storage_version_migration_list_convertToJSON(v1alpha1_storage_version_migration_list_1); + printf("v1alpha1_storage_version_migration_list :\n%s\n", cJSON_Print(jsonv1alpha1_storage_version_migration_list_1)); + v1alpha1_storage_version_migration_list_t* v1alpha1_storage_version_migration_list_2 = v1alpha1_storage_version_migration_list_parseFromJSON(jsonv1alpha1_storage_version_migration_list_1); + cJSON* jsonv1alpha1_storage_version_migration_list_2 = v1alpha1_storage_version_migration_list_convertToJSON(v1alpha1_storage_version_migration_list_2); + printf("repeating v1alpha1_storage_version_migration_list:\n%s\n", cJSON_Print(jsonv1alpha1_storage_version_migration_list_2)); +} + +int main() { + test_v1alpha1_storage_version_migration_list(1); + test_v1alpha1_storage_version_migration_list(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha1_storage_version_migration_list_MAIN +#endif // v1alpha1_storage_version_migration_list_TEST diff --git a/kubernetes/unit-test/test_v1alpha1_storage_version_migration_spec.c b/kubernetes/unit-test/test_v1alpha1_storage_version_migration_spec.c new file mode 100644 index 0000000..30ab2fa --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha1_storage_version_migration_spec.c @@ -0,0 +1,62 @@ +#ifndef v1alpha1_storage_version_migration_spec_TEST +#define v1alpha1_storage_version_migration_spec_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha1_storage_version_migration_spec_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha1_storage_version_migration_spec.h" +v1alpha1_storage_version_migration_spec_t* instantiate_v1alpha1_storage_version_migration_spec(int include_optional); + +#include "test_v1alpha1_group_version_resource.c" + + +v1alpha1_storage_version_migration_spec_t* instantiate_v1alpha1_storage_version_migration_spec(int include_optional) { + v1alpha1_storage_version_migration_spec_t* v1alpha1_storage_version_migration_spec = NULL; + if (include_optional) { + v1alpha1_storage_version_migration_spec = v1alpha1_storage_version_migration_spec_create( + "0", + // false, not to have infinite recursion + instantiate_v1alpha1_group_version_resource(0) + ); + } else { + v1alpha1_storage_version_migration_spec = v1alpha1_storage_version_migration_spec_create( + "0", + NULL + ); + } + + return v1alpha1_storage_version_migration_spec; +} + + +#ifdef v1alpha1_storage_version_migration_spec_MAIN + +void test_v1alpha1_storage_version_migration_spec(int include_optional) { + v1alpha1_storage_version_migration_spec_t* v1alpha1_storage_version_migration_spec_1 = instantiate_v1alpha1_storage_version_migration_spec(include_optional); + + cJSON* jsonv1alpha1_storage_version_migration_spec_1 = v1alpha1_storage_version_migration_spec_convertToJSON(v1alpha1_storage_version_migration_spec_1); + printf("v1alpha1_storage_version_migration_spec :\n%s\n", cJSON_Print(jsonv1alpha1_storage_version_migration_spec_1)); + v1alpha1_storage_version_migration_spec_t* v1alpha1_storage_version_migration_spec_2 = v1alpha1_storage_version_migration_spec_parseFromJSON(jsonv1alpha1_storage_version_migration_spec_1); + cJSON* jsonv1alpha1_storage_version_migration_spec_2 = v1alpha1_storage_version_migration_spec_convertToJSON(v1alpha1_storage_version_migration_spec_2); + printf("repeating v1alpha1_storage_version_migration_spec:\n%s\n", cJSON_Print(jsonv1alpha1_storage_version_migration_spec_2)); +} + +int main() { + test_v1alpha1_storage_version_migration_spec(1); + test_v1alpha1_storage_version_migration_spec(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha1_storage_version_migration_spec_MAIN +#endif // v1alpha1_storage_version_migration_spec_TEST diff --git a/kubernetes/unit-test/test_v1alpha1_storage_version_migration_status.c b/kubernetes/unit-test/test_v1alpha1_storage_version_migration_status.c new file mode 100644 index 0000000..bbd5fe3 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha1_storage_version_migration_status.c @@ -0,0 +1,60 @@ +#ifndef v1alpha1_storage_version_migration_status_TEST +#define v1alpha1_storage_version_migration_status_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha1_storage_version_migration_status_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha1_storage_version_migration_status.h" +v1alpha1_storage_version_migration_status_t* instantiate_v1alpha1_storage_version_migration_status(int include_optional); + + + +v1alpha1_storage_version_migration_status_t* instantiate_v1alpha1_storage_version_migration_status(int include_optional) { + v1alpha1_storage_version_migration_status_t* v1alpha1_storage_version_migration_status = NULL; + if (include_optional) { + v1alpha1_storage_version_migration_status = v1alpha1_storage_version_migration_status_create( + list_createList(), + "0" + ); + } else { + v1alpha1_storage_version_migration_status = v1alpha1_storage_version_migration_status_create( + list_createList(), + "0" + ); + } + + return v1alpha1_storage_version_migration_status; +} + + +#ifdef v1alpha1_storage_version_migration_status_MAIN + +void test_v1alpha1_storage_version_migration_status(int include_optional) { + v1alpha1_storage_version_migration_status_t* v1alpha1_storage_version_migration_status_1 = instantiate_v1alpha1_storage_version_migration_status(include_optional); + + cJSON* jsonv1alpha1_storage_version_migration_status_1 = v1alpha1_storage_version_migration_status_convertToJSON(v1alpha1_storage_version_migration_status_1); + printf("v1alpha1_storage_version_migration_status :\n%s\n", cJSON_Print(jsonv1alpha1_storage_version_migration_status_1)); + v1alpha1_storage_version_migration_status_t* v1alpha1_storage_version_migration_status_2 = v1alpha1_storage_version_migration_status_parseFromJSON(jsonv1alpha1_storage_version_migration_status_1); + cJSON* jsonv1alpha1_storage_version_migration_status_2 = v1alpha1_storage_version_migration_status_convertToJSON(v1alpha1_storage_version_migration_status_2); + printf("repeating v1alpha1_storage_version_migration_status:\n%s\n", cJSON_Print(jsonv1alpha1_storage_version_migration_status_2)); +} + +int main() { + test_v1alpha1_storage_version_migration_status(1); + test_v1alpha1_storage_version_migration_status(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha1_storage_version_migration_status_MAIN +#endif // v1alpha1_storage_version_migration_status_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_driver_allocation_result.c b/kubernetes/unit-test/test_v1alpha2_driver_allocation_result.c new file mode 100644 index 0000000..2110b7e --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_driver_allocation_result.c @@ -0,0 +1,62 @@ +#ifndef v1alpha2_driver_allocation_result_TEST +#define v1alpha2_driver_allocation_result_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_driver_allocation_result_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_driver_allocation_result.h" +v1alpha2_driver_allocation_result_t* instantiate_v1alpha2_driver_allocation_result(int include_optional); + +#include "test_v1alpha2_named_resources_allocation_result.c" + + +v1alpha2_driver_allocation_result_t* instantiate_v1alpha2_driver_allocation_result(int include_optional) { + v1alpha2_driver_allocation_result_t* v1alpha2_driver_allocation_result = NULL; + if (include_optional) { + v1alpha2_driver_allocation_result = v1alpha2_driver_allocation_result_create( + // false, not to have infinite recursion + instantiate_v1alpha2_named_resources_allocation_result(0), + 0 + ); + } else { + v1alpha2_driver_allocation_result = v1alpha2_driver_allocation_result_create( + NULL, + 0 + ); + } + + return v1alpha2_driver_allocation_result; +} + + +#ifdef v1alpha2_driver_allocation_result_MAIN + +void test_v1alpha2_driver_allocation_result(int include_optional) { + v1alpha2_driver_allocation_result_t* v1alpha2_driver_allocation_result_1 = instantiate_v1alpha2_driver_allocation_result(include_optional); + + cJSON* jsonv1alpha2_driver_allocation_result_1 = v1alpha2_driver_allocation_result_convertToJSON(v1alpha2_driver_allocation_result_1); + printf("v1alpha2_driver_allocation_result :\n%s\n", cJSON_Print(jsonv1alpha2_driver_allocation_result_1)); + v1alpha2_driver_allocation_result_t* v1alpha2_driver_allocation_result_2 = v1alpha2_driver_allocation_result_parseFromJSON(jsonv1alpha2_driver_allocation_result_1); + cJSON* jsonv1alpha2_driver_allocation_result_2 = v1alpha2_driver_allocation_result_convertToJSON(v1alpha2_driver_allocation_result_2); + printf("repeating v1alpha2_driver_allocation_result:\n%s\n", cJSON_Print(jsonv1alpha2_driver_allocation_result_2)); +} + +int main() { + test_v1alpha2_driver_allocation_result(1); + test_v1alpha2_driver_allocation_result(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_driver_allocation_result_MAIN +#endif // v1alpha2_driver_allocation_result_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_driver_requests.c b/kubernetes/unit-test/test_v1alpha2_driver_requests.c new file mode 100644 index 0000000..c098f3f --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_driver_requests.c @@ -0,0 +1,62 @@ +#ifndef v1alpha2_driver_requests_TEST +#define v1alpha2_driver_requests_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_driver_requests_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_driver_requests.h" +v1alpha2_driver_requests_t* instantiate_v1alpha2_driver_requests(int include_optional); + + + +v1alpha2_driver_requests_t* instantiate_v1alpha2_driver_requests(int include_optional) { + v1alpha2_driver_requests_t* v1alpha2_driver_requests = NULL; + if (include_optional) { + v1alpha2_driver_requests = v1alpha2_driver_requests_create( + "0", + list_createList(), + 0 + ); + } else { + v1alpha2_driver_requests = v1alpha2_driver_requests_create( + "0", + list_createList(), + 0 + ); + } + + return v1alpha2_driver_requests; +} + + +#ifdef v1alpha2_driver_requests_MAIN + +void test_v1alpha2_driver_requests(int include_optional) { + v1alpha2_driver_requests_t* v1alpha2_driver_requests_1 = instantiate_v1alpha2_driver_requests(include_optional); + + cJSON* jsonv1alpha2_driver_requests_1 = v1alpha2_driver_requests_convertToJSON(v1alpha2_driver_requests_1); + printf("v1alpha2_driver_requests :\n%s\n", cJSON_Print(jsonv1alpha2_driver_requests_1)); + v1alpha2_driver_requests_t* v1alpha2_driver_requests_2 = v1alpha2_driver_requests_parseFromJSON(jsonv1alpha2_driver_requests_1); + cJSON* jsonv1alpha2_driver_requests_2 = v1alpha2_driver_requests_convertToJSON(v1alpha2_driver_requests_2); + printf("repeating v1alpha2_driver_requests:\n%s\n", cJSON_Print(jsonv1alpha2_driver_requests_2)); +} + +int main() { + test_v1alpha2_driver_requests(1); + test_v1alpha2_driver_requests(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_driver_requests_MAIN +#endif // v1alpha2_driver_requests_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_named_resources_allocation_result.c b/kubernetes/unit-test/test_v1alpha2_named_resources_allocation_result.c new file mode 100644 index 0000000..3784720 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_named_resources_allocation_result.c @@ -0,0 +1,58 @@ +#ifndef v1alpha2_named_resources_allocation_result_TEST +#define v1alpha2_named_resources_allocation_result_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_named_resources_allocation_result_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_named_resources_allocation_result.h" +v1alpha2_named_resources_allocation_result_t* instantiate_v1alpha2_named_resources_allocation_result(int include_optional); + + + +v1alpha2_named_resources_allocation_result_t* instantiate_v1alpha2_named_resources_allocation_result(int include_optional) { + v1alpha2_named_resources_allocation_result_t* v1alpha2_named_resources_allocation_result = NULL; + if (include_optional) { + v1alpha2_named_resources_allocation_result = v1alpha2_named_resources_allocation_result_create( + "0" + ); + } else { + v1alpha2_named_resources_allocation_result = v1alpha2_named_resources_allocation_result_create( + "0" + ); + } + + return v1alpha2_named_resources_allocation_result; +} + + +#ifdef v1alpha2_named_resources_allocation_result_MAIN + +void test_v1alpha2_named_resources_allocation_result(int include_optional) { + v1alpha2_named_resources_allocation_result_t* v1alpha2_named_resources_allocation_result_1 = instantiate_v1alpha2_named_resources_allocation_result(include_optional); + + cJSON* jsonv1alpha2_named_resources_allocation_result_1 = v1alpha2_named_resources_allocation_result_convertToJSON(v1alpha2_named_resources_allocation_result_1); + printf("v1alpha2_named_resources_allocation_result :\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_allocation_result_1)); + v1alpha2_named_resources_allocation_result_t* v1alpha2_named_resources_allocation_result_2 = v1alpha2_named_resources_allocation_result_parseFromJSON(jsonv1alpha2_named_resources_allocation_result_1); + cJSON* jsonv1alpha2_named_resources_allocation_result_2 = v1alpha2_named_resources_allocation_result_convertToJSON(v1alpha2_named_resources_allocation_result_2); + printf("repeating v1alpha2_named_resources_allocation_result:\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_allocation_result_2)); +} + +int main() { + test_v1alpha2_named_resources_allocation_result(1); + test_v1alpha2_named_resources_allocation_result(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_named_resources_allocation_result_MAIN +#endif // v1alpha2_named_resources_allocation_result_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_named_resources_attribute.c b/kubernetes/unit-test/test_v1alpha2_named_resources_attribute.c new file mode 100644 index 0000000..cb8936c --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_named_resources_attribute.c @@ -0,0 +1,76 @@ +#ifndef v1alpha2_named_resources_attribute_TEST +#define v1alpha2_named_resources_attribute_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_named_resources_attribute_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_named_resources_attribute.h" +v1alpha2_named_resources_attribute_t* instantiate_v1alpha2_named_resources_attribute(int include_optional); + +#include "test_v1alpha2_named_resources_int_slice.c" +#include "test_v1alpha2_named_resources_string_slice.c" + + +v1alpha2_named_resources_attribute_t* instantiate_v1alpha2_named_resources_attribute(int include_optional) { + v1alpha2_named_resources_attribute_t* v1alpha2_named_resources_attribute = NULL; + if (include_optional) { + v1alpha2_named_resources_attribute = v1alpha2_named_resources_attribute_create( + 1, + 56, + // false, not to have infinite recursion + instantiate_v1alpha2_named_resources_int_slice(0), + "0", + "0", + "0", + // false, not to have infinite recursion + instantiate_v1alpha2_named_resources_string_slice(0), + "0" + ); + } else { + v1alpha2_named_resources_attribute = v1alpha2_named_resources_attribute_create( + 1, + 56, + NULL, + "0", + "0", + "0", + NULL, + "0" + ); + } + + return v1alpha2_named_resources_attribute; +} + + +#ifdef v1alpha2_named_resources_attribute_MAIN + +void test_v1alpha2_named_resources_attribute(int include_optional) { + v1alpha2_named_resources_attribute_t* v1alpha2_named_resources_attribute_1 = instantiate_v1alpha2_named_resources_attribute(include_optional); + + cJSON* jsonv1alpha2_named_resources_attribute_1 = v1alpha2_named_resources_attribute_convertToJSON(v1alpha2_named_resources_attribute_1); + printf("v1alpha2_named_resources_attribute :\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_attribute_1)); + v1alpha2_named_resources_attribute_t* v1alpha2_named_resources_attribute_2 = v1alpha2_named_resources_attribute_parseFromJSON(jsonv1alpha2_named_resources_attribute_1); + cJSON* jsonv1alpha2_named_resources_attribute_2 = v1alpha2_named_resources_attribute_convertToJSON(v1alpha2_named_resources_attribute_2); + printf("repeating v1alpha2_named_resources_attribute:\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_attribute_2)); +} + +int main() { + test_v1alpha2_named_resources_attribute(1); + test_v1alpha2_named_resources_attribute(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_named_resources_attribute_MAIN +#endif // v1alpha2_named_resources_attribute_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_named_resources_filter.c b/kubernetes/unit-test/test_v1alpha2_named_resources_filter.c new file mode 100644 index 0000000..dcc3041 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_named_resources_filter.c @@ -0,0 +1,58 @@ +#ifndef v1alpha2_named_resources_filter_TEST +#define v1alpha2_named_resources_filter_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_named_resources_filter_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_named_resources_filter.h" +v1alpha2_named_resources_filter_t* instantiate_v1alpha2_named_resources_filter(int include_optional); + + + +v1alpha2_named_resources_filter_t* instantiate_v1alpha2_named_resources_filter(int include_optional) { + v1alpha2_named_resources_filter_t* v1alpha2_named_resources_filter = NULL; + if (include_optional) { + v1alpha2_named_resources_filter = v1alpha2_named_resources_filter_create( + "0" + ); + } else { + v1alpha2_named_resources_filter = v1alpha2_named_resources_filter_create( + "0" + ); + } + + return v1alpha2_named_resources_filter; +} + + +#ifdef v1alpha2_named_resources_filter_MAIN + +void test_v1alpha2_named_resources_filter(int include_optional) { + v1alpha2_named_resources_filter_t* v1alpha2_named_resources_filter_1 = instantiate_v1alpha2_named_resources_filter(include_optional); + + cJSON* jsonv1alpha2_named_resources_filter_1 = v1alpha2_named_resources_filter_convertToJSON(v1alpha2_named_resources_filter_1); + printf("v1alpha2_named_resources_filter :\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_filter_1)); + v1alpha2_named_resources_filter_t* v1alpha2_named_resources_filter_2 = v1alpha2_named_resources_filter_parseFromJSON(jsonv1alpha2_named_resources_filter_1); + cJSON* jsonv1alpha2_named_resources_filter_2 = v1alpha2_named_resources_filter_convertToJSON(v1alpha2_named_resources_filter_2); + printf("repeating v1alpha2_named_resources_filter:\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_filter_2)); +} + +int main() { + test_v1alpha2_named_resources_filter(1); + test_v1alpha2_named_resources_filter(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_named_resources_filter_MAIN +#endif // v1alpha2_named_resources_filter_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_named_resources_instance.c b/kubernetes/unit-test/test_v1alpha2_named_resources_instance.c new file mode 100644 index 0000000..0a95597 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_named_resources_instance.c @@ -0,0 +1,60 @@ +#ifndef v1alpha2_named_resources_instance_TEST +#define v1alpha2_named_resources_instance_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_named_resources_instance_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_named_resources_instance.h" +v1alpha2_named_resources_instance_t* instantiate_v1alpha2_named_resources_instance(int include_optional); + + + +v1alpha2_named_resources_instance_t* instantiate_v1alpha2_named_resources_instance(int include_optional) { + v1alpha2_named_resources_instance_t* v1alpha2_named_resources_instance = NULL; + if (include_optional) { + v1alpha2_named_resources_instance = v1alpha2_named_resources_instance_create( + list_createList(), + "0" + ); + } else { + v1alpha2_named_resources_instance = v1alpha2_named_resources_instance_create( + list_createList(), + "0" + ); + } + + return v1alpha2_named_resources_instance; +} + + +#ifdef v1alpha2_named_resources_instance_MAIN + +void test_v1alpha2_named_resources_instance(int include_optional) { + v1alpha2_named_resources_instance_t* v1alpha2_named_resources_instance_1 = instantiate_v1alpha2_named_resources_instance(include_optional); + + cJSON* jsonv1alpha2_named_resources_instance_1 = v1alpha2_named_resources_instance_convertToJSON(v1alpha2_named_resources_instance_1); + printf("v1alpha2_named_resources_instance :\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_instance_1)); + v1alpha2_named_resources_instance_t* v1alpha2_named_resources_instance_2 = v1alpha2_named_resources_instance_parseFromJSON(jsonv1alpha2_named_resources_instance_1); + cJSON* jsonv1alpha2_named_resources_instance_2 = v1alpha2_named_resources_instance_convertToJSON(v1alpha2_named_resources_instance_2); + printf("repeating v1alpha2_named_resources_instance:\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_instance_2)); +} + +int main() { + test_v1alpha2_named_resources_instance(1); + test_v1alpha2_named_resources_instance(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_named_resources_instance_MAIN +#endif // v1alpha2_named_resources_instance_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_named_resources_int_slice.c b/kubernetes/unit-test/test_v1alpha2_named_resources_int_slice.c new file mode 100644 index 0000000..42c746d --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_named_resources_int_slice.c @@ -0,0 +1,58 @@ +#ifndef v1alpha2_named_resources_int_slice_TEST +#define v1alpha2_named_resources_int_slice_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_named_resources_int_slice_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_named_resources_int_slice.h" +v1alpha2_named_resources_int_slice_t* instantiate_v1alpha2_named_resources_int_slice(int include_optional); + + + +v1alpha2_named_resources_int_slice_t* instantiate_v1alpha2_named_resources_int_slice(int include_optional) { + v1alpha2_named_resources_int_slice_t* v1alpha2_named_resources_int_slice = NULL; + if (include_optional) { + v1alpha2_named_resources_int_slice = v1alpha2_named_resources_int_slice_create( + list_createList() + ); + } else { + v1alpha2_named_resources_int_slice = v1alpha2_named_resources_int_slice_create( + list_createList() + ); + } + + return v1alpha2_named_resources_int_slice; +} + + +#ifdef v1alpha2_named_resources_int_slice_MAIN + +void test_v1alpha2_named_resources_int_slice(int include_optional) { + v1alpha2_named_resources_int_slice_t* v1alpha2_named_resources_int_slice_1 = instantiate_v1alpha2_named_resources_int_slice(include_optional); + + cJSON* jsonv1alpha2_named_resources_int_slice_1 = v1alpha2_named_resources_int_slice_convertToJSON(v1alpha2_named_resources_int_slice_1); + printf("v1alpha2_named_resources_int_slice :\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_int_slice_1)); + v1alpha2_named_resources_int_slice_t* v1alpha2_named_resources_int_slice_2 = v1alpha2_named_resources_int_slice_parseFromJSON(jsonv1alpha2_named_resources_int_slice_1); + cJSON* jsonv1alpha2_named_resources_int_slice_2 = v1alpha2_named_resources_int_slice_convertToJSON(v1alpha2_named_resources_int_slice_2); + printf("repeating v1alpha2_named_resources_int_slice:\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_int_slice_2)); +} + +int main() { + test_v1alpha2_named_resources_int_slice(1); + test_v1alpha2_named_resources_int_slice(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_named_resources_int_slice_MAIN +#endif // v1alpha2_named_resources_int_slice_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_named_resources_request.c b/kubernetes/unit-test/test_v1alpha2_named_resources_request.c new file mode 100644 index 0000000..20d1ebf --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_named_resources_request.c @@ -0,0 +1,58 @@ +#ifndef v1alpha2_named_resources_request_TEST +#define v1alpha2_named_resources_request_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_named_resources_request_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_named_resources_request.h" +v1alpha2_named_resources_request_t* instantiate_v1alpha2_named_resources_request(int include_optional); + + + +v1alpha2_named_resources_request_t* instantiate_v1alpha2_named_resources_request(int include_optional) { + v1alpha2_named_resources_request_t* v1alpha2_named_resources_request = NULL; + if (include_optional) { + v1alpha2_named_resources_request = v1alpha2_named_resources_request_create( + "0" + ); + } else { + v1alpha2_named_resources_request = v1alpha2_named_resources_request_create( + "0" + ); + } + + return v1alpha2_named_resources_request; +} + + +#ifdef v1alpha2_named_resources_request_MAIN + +void test_v1alpha2_named_resources_request(int include_optional) { + v1alpha2_named_resources_request_t* v1alpha2_named_resources_request_1 = instantiate_v1alpha2_named_resources_request(include_optional); + + cJSON* jsonv1alpha2_named_resources_request_1 = v1alpha2_named_resources_request_convertToJSON(v1alpha2_named_resources_request_1); + printf("v1alpha2_named_resources_request :\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_request_1)); + v1alpha2_named_resources_request_t* v1alpha2_named_resources_request_2 = v1alpha2_named_resources_request_parseFromJSON(jsonv1alpha2_named_resources_request_1); + cJSON* jsonv1alpha2_named_resources_request_2 = v1alpha2_named_resources_request_convertToJSON(v1alpha2_named_resources_request_2); + printf("repeating v1alpha2_named_resources_request:\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_request_2)); +} + +int main() { + test_v1alpha2_named_resources_request(1); + test_v1alpha2_named_resources_request(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_named_resources_request_MAIN +#endif // v1alpha2_named_resources_request_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_named_resources_resources.c b/kubernetes/unit-test/test_v1alpha2_named_resources_resources.c new file mode 100644 index 0000000..d6d1a34 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_named_resources_resources.c @@ -0,0 +1,58 @@ +#ifndef v1alpha2_named_resources_resources_TEST +#define v1alpha2_named_resources_resources_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_named_resources_resources_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_named_resources_resources.h" +v1alpha2_named_resources_resources_t* instantiate_v1alpha2_named_resources_resources(int include_optional); + + + +v1alpha2_named_resources_resources_t* instantiate_v1alpha2_named_resources_resources(int include_optional) { + v1alpha2_named_resources_resources_t* v1alpha2_named_resources_resources = NULL; + if (include_optional) { + v1alpha2_named_resources_resources = v1alpha2_named_resources_resources_create( + list_createList() + ); + } else { + v1alpha2_named_resources_resources = v1alpha2_named_resources_resources_create( + list_createList() + ); + } + + return v1alpha2_named_resources_resources; +} + + +#ifdef v1alpha2_named_resources_resources_MAIN + +void test_v1alpha2_named_resources_resources(int include_optional) { + v1alpha2_named_resources_resources_t* v1alpha2_named_resources_resources_1 = instantiate_v1alpha2_named_resources_resources(include_optional); + + cJSON* jsonv1alpha2_named_resources_resources_1 = v1alpha2_named_resources_resources_convertToJSON(v1alpha2_named_resources_resources_1); + printf("v1alpha2_named_resources_resources :\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_resources_1)); + v1alpha2_named_resources_resources_t* v1alpha2_named_resources_resources_2 = v1alpha2_named_resources_resources_parseFromJSON(jsonv1alpha2_named_resources_resources_1); + cJSON* jsonv1alpha2_named_resources_resources_2 = v1alpha2_named_resources_resources_convertToJSON(v1alpha2_named_resources_resources_2); + printf("repeating v1alpha2_named_resources_resources:\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_resources_2)); +} + +int main() { + test_v1alpha2_named_resources_resources(1); + test_v1alpha2_named_resources_resources(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_named_resources_resources_MAIN +#endif // v1alpha2_named_resources_resources_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_named_resources_string_slice.c b/kubernetes/unit-test/test_v1alpha2_named_resources_string_slice.c new file mode 100644 index 0000000..7340e8f --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_named_resources_string_slice.c @@ -0,0 +1,58 @@ +#ifndef v1alpha2_named_resources_string_slice_TEST +#define v1alpha2_named_resources_string_slice_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_named_resources_string_slice_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_named_resources_string_slice.h" +v1alpha2_named_resources_string_slice_t* instantiate_v1alpha2_named_resources_string_slice(int include_optional); + + + +v1alpha2_named_resources_string_slice_t* instantiate_v1alpha2_named_resources_string_slice(int include_optional) { + v1alpha2_named_resources_string_slice_t* v1alpha2_named_resources_string_slice = NULL; + if (include_optional) { + v1alpha2_named_resources_string_slice = v1alpha2_named_resources_string_slice_create( + list_createList() + ); + } else { + v1alpha2_named_resources_string_slice = v1alpha2_named_resources_string_slice_create( + list_createList() + ); + } + + return v1alpha2_named_resources_string_slice; +} + + +#ifdef v1alpha2_named_resources_string_slice_MAIN + +void test_v1alpha2_named_resources_string_slice(int include_optional) { + v1alpha2_named_resources_string_slice_t* v1alpha2_named_resources_string_slice_1 = instantiate_v1alpha2_named_resources_string_slice(include_optional); + + cJSON* jsonv1alpha2_named_resources_string_slice_1 = v1alpha2_named_resources_string_slice_convertToJSON(v1alpha2_named_resources_string_slice_1); + printf("v1alpha2_named_resources_string_slice :\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_string_slice_1)); + v1alpha2_named_resources_string_slice_t* v1alpha2_named_resources_string_slice_2 = v1alpha2_named_resources_string_slice_parseFromJSON(jsonv1alpha2_named_resources_string_slice_1); + cJSON* jsonv1alpha2_named_resources_string_slice_2 = v1alpha2_named_resources_string_slice_convertToJSON(v1alpha2_named_resources_string_slice_2); + printf("repeating v1alpha2_named_resources_string_slice:\n%s\n", cJSON_Print(jsonv1alpha2_named_resources_string_slice_2)); +} + +int main() { + test_v1alpha2_named_resources_string_slice(1); + test_v1alpha2_named_resources_string_slice(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_named_resources_string_slice_MAIN +#endif // v1alpha2_named_resources_string_slice_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_resource_claim_parameters.c b/kubernetes/unit-test/test_v1alpha2_resource_claim_parameters.c new file mode 100644 index 0000000..ccffd19 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_resource_claim_parameters.c @@ -0,0 +1,72 @@ +#ifndef v1alpha2_resource_claim_parameters_TEST +#define v1alpha2_resource_claim_parameters_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_resource_claim_parameters_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_resource_claim_parameters.h" +v1alpha2_resource_claim_parameters_t* instantiate_v1alpha2_resource_claim_parameters(int include_optional); + +#include "test_v1alpha2_resource_claim_parameters_reference.c" +#include "test_v1_object_meta.c" + + +v1alpha2_resource_claim_parameters_t* instantiate_v1alpha2_resource_claim_parameters(int include_optional) { + v1alpha2_resource_claim_parameters_t* v1alpha2_resource_claim_parameters = NULL; + if (include_optional) { + v1alpha2_resource_claim_parameters = v1alpha2_resource_claim_parameters_create( + "0", + list_createList(), + // false, not to have infinite recursion + instantiate_v1alpha2_resource_claim_parameters_reference(0), + "0", + // false, not to have infinite recursion + instantiate_v1_object_meta(0), + 1 + ); + } else { + v1alpha2_resource_claim_parameters = v1alpha2_resource_claim_parameters_create( + "0", + list_createList(), + NULL, + "0", + NULL, + 1 + ); + } + + return v1alpha2_resource_claim_parameters; +} + + +#ifdef v1alpha2_resource_claim_parameters_MAIN + +void test_v1alpha2_resource_claim_parameters(int include_optional) { + v1alpha2_resource_claim_parameters_t* v1alpha2_resource_claim_parameters_1 = instantiate_v1alpha2_resource_claim_parameters(include_optional); + + cJSON* jsonv1alpha2_resource_claim_parameters_1 = v1alpha2_resource_claim_parameters_convertToJSON(v1alpha2_resource_claim_parameters_1); + printf("v1alpha2_resource_claim_parameters :\n%s\n", cJSON_Print(jsonv1alpha2_resource_claim_parameters_1)); + v1alpha2_resource_claim_parameters_t* v1alpha2_resource_claim_parameters_2 = v1alpha2_resource_claim_parameters_parseFromJSON(jsonv1alpha2_resource_claim_parameters_1); + cJSON* jsonv1alpha2_resource_claim_parameters_2 = v1alpha2_resource_claim_parameters_convertToJSON(v1alpha2_resource_claim_parameters_2); + printf("repeating v1alpha2_resource_claim_parameters:\n%s\n", cJSON_Print(jsonv1alpha2_resource_claim_parameters_2)); +} + +int main() { + test_v1alpha2_resource_claim_parameters(1); + test_v1alpha2_resource_claim_parameters(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_resource_claim_parameters_MAIN +#endif // v1alpha2_resource_claim_parameters_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_resource_claim_parameters_list.c b/kubernetes/unit-test/test_v1alpha2_resource_claim_parameters_list.c new file mode 100644 index 0000000..9f4a70f --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_resource_claim_parameters_list.c @@ -0,0 +1,66 @@ +#ifndef v1alpha2_resource_claim_parameters_list_TEST +#define v1alpha2_resource_claim_parameters_list_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_resource_claim_parameters_list_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_resource_claim_parameters_list.h" +v1alpha2_resource_claim_parameters_list_t* instantiate_v1alpha2_resource_claim_parameters_list(int include_optional); + +#include "test_v1_list_meta.c" + + +v1alpha2_resource_claim_parameters_list_t* instantiate_v1alpha2_resource_claim_parameters_list(int include_optional) { + v1alpha2_resource_claim_parameters_list_t* v1alpha2_resource_claim_parameters_list = NULL; + if (include_optional) { + v1alpha2_resource_claim_parameters_list = v1alpha2_resource_claim_parameters_list_create( + "0", + list_createList(), + "0", + // false, not to have infinite recursion + instantiate_v1_list_meta(0) + ); + } else { + v1alpha2_resource_claim_parameters_list = v1alpha2_resource_claim_parameters_list_create( + "0", + list_createList(), + "0", + NULL + ); + } + + return v1alpha2_resource_claim_parameters_list; +} + + +#ifdef v1alpha2_resource_claim_parameters_list_MAIN + +void test_v1alpha2_resource_claim_parameters_list(int include_optional) { + v1alpha2_resource_claim_parameters_list_t* v1alpha2_resource_claim_parameters_list_1 = instantiate_v1alpha2_resource_claim_parameters_list(include_optional); + + cJSON* jsonv1alpha2_resource_claim_parameters_list_1 = v1alpha2_resource_claim_parameters_list_convertToJSON(v1alpha2_resource_claim_parameters_list_1); + printf("v1alpha2_resource_claim_parameters_list :\n%s\n", cJSON_Print(jsonv1alpha2_resource_claim_parameters_list_1)); + v1alpha2_resource_claim_parameters_list_t* v1alpha2_resource_claim_parameters_list_2 = v1alpha2_resource_claim_parameters_list_parseFromJSON(jsonv1alpha2_resource_claim_parameters_list_1); + cJSON* jsonv1alpha2_resource_claim_parameters_list_2 = v1alpha2_resource_claim_parameters_list_convertToJSON(v1alpha2_resource_claim_parameters_list_2); + printf("repeating v1alpha2_resource_claim_parameters_list:\n%s\n", cJSON_Print(jsonv1alpha2_resource_claim_parameters_list_2)); +} + +int main() { + test_v1alpha2_resource_claim_parameters_list(1); + test_v1alpha2_resource_claim_parameters_list(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_resource_claim_parameters_list_MAIN +#endif // v1alpha2_resource_claim_parameters_list_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_resource_class.c b/kubernetes/unit-test/test_v1alpha2_resource_class.c index e8da2b4..75715ea 100644 --- a/kubernetes/unit-test/test_v1alpha2_resource_class.c +++ b/kubernetes/unit-test/test_v1alpha2_resource_class.c @@ -32,6 +32,7 @@ v1alpha2_resource_class_t* instantiate_v1alpha2_resource_class(int include_optio instantiate_v1_object_meta(0), // false, not to have infinite recursion instantiate_v1alpha2_resource_class_parameters_reference(0), + 1, // false, not to have infinite recursion instantiate_v1_node_selector(0) ); @@ -42,6 +43,7 @@ v1alpha2_resource_class_t* instantiate_v1alpha2_resource_class(int include_optio "0", NULL, NULL, + 1, NULL ); } diff --git a/kubernetes/unit-test/test_v1alpha2_resource_class_parameters.c b/kubernetes/unit-test/test_v1alpha2_resource_class_parameters.c new file mode 100644 index 0000000..d19205a --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_resource_class_parameters.c @@ -0,0 +1,72 @@ +#ifndef v1alpha2_resource_class_parameters_TEST +#define v1alpha2_resource_class_parameters_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_resource_class_parameters_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_resource_class_parameters.h" +v1alpha2_resource_class_parameters_t* instantiate_v1alpha2_resource_class_parameters(int include_optional); + +#include "test_v1alpha2_resource_class_parameters_reference.c" +#include "test_v1_object_meta.c" + + +v1alpha2_resource_class_parameters_t* instantiate_v1alpha2_resource_class_parameters(int include_optional) { + v1alpha2_resource_class_parameters_t* v1alpha2_resource_class_parameters = NULL; + if (include_optional) { + v1alpha2_resource_class_parameters = v1alpha2_resource_class_parameters_create( + "0", + list_createList(), + // false, not to have infinite recursion + instantiate_v1alpha2_resource_class_parameters_reference(0), + "0", + // false, not to have infinite recursion + instantiate_v1_object_meta(0), + list_createList() + ); + } else { + v1alpha2_resource_class_parameters = v1alpha2_resource_class_parameters_create( + "0", + list_createList(), + NULL, + "0", + NULL, + list_createList() + ); + } + + return v1alpha2_resource_class_parameters; +} + + +#ifdef v1alpha2_resource_class_parameters_MAIN + +void test_v1alpha2_resource_class_parameters(int include_optional) { + v1alpha2_resource_class_parameters_t* v1alpha2_resource_class_parameters_1 = instantiate_v1alpha2_resource_class_parameters(include_optional); + + cJSON* jsonv1alpha2_resource_class_parameters_1 = v1alpha2_resource_class_parameters_convertToJSON(v1alpha2_resource_class_parameters_1); + printf("v1alpha2_resource_class_parameters :\n%s\n", cJSON_Print(jsonv1alpha2_resource_class_parameters_1)); + v1alpha2_resource_class_parameters_t* v1alpha2_resource_class_parameters_2 = v1alpha2_resource_class_parameters_parseFromJSON(jsonv1alpha2_resource_class_parameters_1); + cJSON* jsonv1alpha2_resource_class_parameters_2 = v1alpha2_resource_class_parameters_convertToJSON(v1alpha2_resource_class_parameters_2); + printf("repeating v1alpha2_resource_class_parameters:\n%s\n", cJSON_Print(jsonv1alpha2_resource_class_parameters_2)); +} + +int main() { + test_v1alpha2_resource_class_parameters(1); + test_v1alpha2_resource_class_parameters(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_resource_class_parameters_MAIN +#endif // v1alpha2_resource_class_parameters_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_resource_class_parameters_list.c b/kubernetes/unit-test/test_v1alpha2_resource_class_parameters_list.c new file mode 100644 index 0000000..6d47c4a --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_resource_class_parameters_list.c @@ -0,0 +1,66 @@ +#ifndef v1alpha2_resource_class_parameters_list_TEST +#define v1alpha2_resource_class_parameters_list_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_resource_class_parameters_list_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_resource_class_parameters_list.h" +v1alpha2_resource_class_parameters_list_t* instantiate_v1alpha2_resource_class_parameters_list(int include_optional); + +#include "test_v1_list_meta.c" + + +v1alpha2_resource_class_parameters_list_t* instantiate_v1alpha2_resource_class_parameters_list(int include_optional) { + v1alpha2_resource_class_parameters_list_t* v1alpha2_resource_class_parameters_list = NULL; + if (include_optional) { + v1alpha2_resource_class_parameters_list = v1alpha2_resource_class_parameters_list_create( + "0", + list_createList(), + "0", + // false, not to have infinite recursion + instantiate_v1_list_meta(0) + ); + } else { + v1alpha2_resource_class_parameters_list = v1alpha2_resource_class_parameters_list_create( + "0", + list_createList(), + "0", + NULL + ); + } + + return v1alpha2_resource_class_parameters_list; +} + + +#ifdef v1alpha2_resource_class_parameters_list_MAIN + +void test_v1alpha2_resource_class_parameters_list(int include_optional) { + v1alpha2_resource_class_parameters_list_t* v1alpha2_resource_class_parameters_list_1 = instantiate_v1alpha2_resource_class_parameters_list(include_optional); + + cJSON* jsonv1alpha2_resource_class_parameters_list_1 = v1alpha2_resource_class_parameters_list_convertToJSON(v1alpha2_resource_class_parameters_list_1); + printf("v1alpha2_resource_class_parameters_list :\n%s\n", cJSON_Print(jsonv1alpha2_resource_class_parameters_list_1)); + v1alpha2_resource_class_parameters_list_t* v1alpha2_resource_class_parameters_list_2 = v1alpha2_resource_class_parameters_list_parseFromJSON(jsonv1alpha2_resource_class_parameters_list_1); + cJSON* jsonv1alpha2_resource_class_parameters_list_2 = v1alpha2_resource_class_parameters_list_convertToJSON(v1alpha2_resource_class_parameters_list_2); + printf("repeating v1alpha2_resource_class_parameters_list:\n%s\n", cJSON_Print(jsonv1alpha2_resource_class_parameters_list_2)); +} + +int main() { + test_v1alpha2_resource_class_parameters_list(1); + test_v1alpha2_resource_class_parameters_list(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_resource_class_parameters_list_MAIN +#endif // v1alpha2_resource_class_parameters_list_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_resource_filter.c b/kubernetes/unit-test/test_v1alpha2_resource_filter.c new file mode 100644 index 0000000..c34c1f0 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_resource_filter.c @@ -0,0 +1,62 @@ +#ifndef v1alpha2_resource_filter_TEST +#define v1alpha2_resource_filter_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_resource_filter_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_resource_filter.h" +v1alpha2_resource_filter_t* instantiate_v1alpha2_resource_filter(int include_optional); + +#include "test_v1alpha2_named_resources_filter.c" + + +v1alpha2_resource_filter_t* instantiate_v1alpha2_resource_filter(int include_optional) { + v1alpha2_resource_filter_t* v1alpha2_resource_filter = NULL; + if (include_optional) { + v1alpha2_resource_filter = v1alpha2_resource_filter_create( + "0", + // false, not to have infinite recursion + instantiate_v1alpha2_named_resources_filter(0) + ); + } else { + v1alpha2_resource_filter = v1alpha2_resource_filter_create( + "0", + NULL + ); + } + + return v1alpha2_resource_filter; +} + + +#ifdef v1alpha2_resource_filter_MAIN + +void test_v1alpha2_resource_filter(int include_optional) { + v1alpha2_resource_filter_t* v1alpha2_resource_filter_1 = instantiate_v1alpha2_resource_filter(include_optional); + + cJSON* jsonv1alpha2_resource_filter_1 = v1alpha2_resource_filter_convertToJSON(v1alpha2_resource_filter_1); + printf("v1alpha2_resource_filter :\n%s\n", cJSON_Print(jsonv1alpha2_resource_filter_1)); + v1alpha2_resource_filter_t* v1alpha2_resource_filter_2 = v1alpha2_resource_filter_parseFromJSON(jsonv1alpha2_resource_filter_1); + cJSON* jsonv1alpha2_resource_filter_2 = v1alpha2_resource_filter_convertToJSON(v1alpha2_resource_filter_2); + printf("repeating v1alpha2_resource_filter:\n%s\n", cJSON_Print(jsonv1alpha2_resource_filter_2)); +} + +int main() { + test_v1alpha2_resource_filter(1); + test_v1alpha2_resource_filter(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_resource_filter_MAIN +#endif // v1alpha2_resource_filter_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_resource_handle.c b/kubernetes/unit-test/test_v1alpha2_resource_handle.c index fc70ace..24017c1 100644 --- a/kubernetes/unit-test/test_v1alpha2_resource_handle.c +++ b/kubernetes/unit-test/test_v1alpha2_resource_handle.c @@ -16,6 +16,7 @@ #include "../model/v1alpha2_resource_handle.h" v1alpha2_resource_handle_t* instantiate_v1alpha2_resource_handle(int include_optional); +#include "test_v1alpha2_structured_resource_handle.c" v1alpha2_resource_handle_t* instantiate_v1alpha2_resource_handle(int include_optional) { @@ -23,12 +24,15 @@ v1alpha2_resource_handle_t* instantiate_v1alpha2_resource_handle(int include_opt if (include_optional) { v1alpha2_resource_handle = v1alpha2_resource_handle_create( "0", - "0" + "0", + // false, not to have infinite recursion + instantiate_v1alpha2_structured_resource_handle(0) ); } else { v1alpha2_resource_handle = v1alpha2_resource_handle_create( "0", - "0" + "0", + NULL ); } diff --git a/kubernetes/unit-test/test_v1alpha2_resource_request.c b/kubernetes/unit-test/test_v1alpha2_resource_request.c new file mode 100644 index 0000000..a45d791 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_resource_request.c @@ -0,0 +1,62 @@ +#ifndef v1alpha2_resource_request_TEST +#define v1alpha2_resource_request_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_resource_request_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_resource_request.h" +v1alpha2_resource_request_t* instantiate_v1alpha2_resource_request(int include_optional); + +#include "test_v1alpha2_named_resources_request.c" + + +v1alpha2_resource_request_t* instantiate_v1alpha2_resource_request(int include_optional) { + v1alpha2_resource_request_t* v1alpha2_resource_request = NULL; + if (include_optional) { + v1alpha2_resource_request = v1alpha2_resource_request_create( + // false, not to have infinite recursion + instantiate_v1alpha2_named_resources_request(0), + 0 + ); + } else { + v1alpha2_resource_request = v1alpha2_resource_request_create( + NULL, + 0 + ); + } + + return v1alpha2_resource_request; +} + + +#ifdef v1alpha2_resource_request_MAIN + +void test_v1alpha2_resource_request(int include_optional) { + v1alpha2_resource_request_t* v1alpha2_resource_request_1 = instantiate_v1alpha2_resource_request(include_optional); + + cJSON* jsonv1alpha2_resource_request_1 = v1alpha2_resource_request_convertToJSON(v1alpha2_resource_request_1); + printf("v1alpha2_resource_request :\n%s\n", cJSON_Print(jsonv1alpha2_resource_request_1)); + v1alpha2_resource_request_t* v1alpha2_resource_request_2 = v1alpha2_resource_request_parseFromJSON(jsonv1alpha2_resource_request_1); + cJSON* jsonv1alpha2_resource_request_2 = v1alpha2_resource_request_convertToJSON(v1alpha2_resource_request_2); + printf("repeating v1alpha2_resource_request:\n%s\n", cJSON_Print(jsonv1alpha2_resource_request_2)); +} + +int main() { + test_v1alpha2_resource_request(1); + test_v1alpha2_resource_request(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_resource_request_MAIN +#endif // v1alpha2_resource_request_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_resource_slice.c b/kubernetes/unit-test/test_v1alpha2_resource_slice.c new file mode 100644 index 0000000..a12a1e4 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_resource_slice.c @@ -0,0 +1,72 @@ +#ifndef v1alpha2_resource_slice_TEST +#define v1alpha2_resource_slice_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_resource_slice_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_resource_slice.h" +v1alpha2_resource_slice_t* instantiate_v1alpha2_resource_slice(int include_optional); + +#include "test_v1_object_meta.c" +#include "test_v1alpha2_named_resources_resources.c" + + +v1alpha2_resource_slice_t* instantiate_v1alpha2_resource_slice(int include_optional) { + v1alpha2_resource_slice_t* v1alpha2_resource_slice = NULL; + if (include_optional) { + v1alpha2_resource_slice = v1alpha2_resource_slice_create( + "0", + "0", + "0", + // false, not to have infinite recursion + instantiate_v1_object_meta(0), + // false, not to have infinite recursion + instantiate_v1alpha2_named_resources_resources(0), + "0" + ); + } else { + v1alpha2_resource_slice = v1alpha2_resource_slice_create( + "0", + "0", + "0", + NULL, + NULL, + "0" + ); + } + + return v1alpha2_resource_slice; +} + + +#ifdef v1alpha2_resource_slice_MAIN + +void test_v1alpha2_resource_slice(int include_optional) { + v1alpha2_resource_slice_t* v1alpha2_resource_slice_1 = instantiate_v1alpha2_resource_slice(include_optional); + + cJSON* jsonv1alpha2_resource_slice_1 = v1alpha2_resource_slice_convertToJSON(v1alpha2_resource_slice_1); + printf("v1alpha2_resource_slice :\n%s\n", cJSON_Print(jsonv1alpha2_resource_slice_1)); + v1alpha2_resource_slice_t* v1alpha2_resource_slice_2 = v1alpha2_resource_slice_parseFromJSON(jsonv1alpha2_resource_slice_1); + cJSON* jsonv1alpha2_resource_slice_2 = v1alpha2_resource_slice_convertToJSON(v1alpha2_resource_slice_2); + printf("repeating v1alpha2_resource_slice:\n%s\n", cJSON_Print(jsonv1alpha2_resource_slice_2)); +} + +int main() { + test_v1alpha2_resource_slice(1); + test_v1alpha2_resource_slice(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_resource_slice_MAIN +#endif // v1alpha2_resource_slice_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_resource_slice_list.c b/kubernetes/unit-test/test_v1alpha2_resource_slice_list.c new file mode 100644 index 0000000..b60658d --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_resource_slice_list.c @@ -0,0 +1,66 @@ +#ifndef v1alpha2_resource_slice_list_TEST +#define v1alpha2_resource_slice_list_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_resource_slice_list_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_resource_slice_list.h" +v1alpha2_resource_slice_list_t* instantiate_v1alpha2_resource_slice_list(int include_optional); + +#include "test_v1_list_meta.c" + + +v1alpha2_resource_slice_list_t* instantiate_v1alpha2_resource_slice_list(int include_optional) { + v1alpha2_resource_slice_list_t* v1alpha2_resource_slice_list = NULL; + if (include_optional) { + v1alpha2_resource_slice_list = v1alpha2_resource_slice_list_create( + "0", + list_createList(), + "0", + // false, not to have infinite recursion + instantiate_v1_list_meta(0) + ); + } else { + v1alpha2_resource_slice_list = v1alpha2_resource_slice_list_create( + "0", + list_createList(), + "0", + NULL + ); + } + + return v1alpha2_resource_slice_list; +} + + +#ifdef v1alpha2_resource_slice_list_MAIN + +void test_v1alpha2_resource_slice_list(int include_optional) { + v1alpha2_resource_slice_list_t* v1alpha2_resource_slice_list_1 = instantiate_v1alpha2_resource_slice_list(include_optional); + + cJSON* jsonv1alpha2_resource_slice_list_1 = v1alpha2_resource_slice_list_convertToJSON(v1alpha2_resource_slice_list_1); + printf("v1alpha2_resource_slice_list :\n%s\n", cJSON_Print(jsonv1alpha2_resource_slice_list_1)); + v1alpha2_resource_slice_list_t* v1alpha2_resource_slice_list_2 = v1alpha2_resource_slice_list_parseFromJSON(jsonv1alpha2_resource_slice_list_1); + cJSON* jsonv1alpha2_resource_slice_list_2 = v1alpha2_resource_slice_list_convertToJSON(v1alpha2_resource_slice_list_2); + printf("repeating v1alpha2_resource_slice_list:\n%s\n", cJSON_Print(jsonv1alpha2_resource_slice_list_2)); +} + +int main() { + test_v1alpha2_resource_slice_list(1); + test_v1alpha2_resource_slice_list(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_resource_slice_list_MAIN +#endif // v1alpha2_resource_slice_list_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_structured_resource_handle.c b/kubernetes/unit-test/test_v1alpha2_structured_resource_handle.c new file mode 100644 index 0000000..c673ce2 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_structured_resource_handle.c @@ -0,0 +1,64 @@ +#ifndef v1alpha2_structured_resource_handle_TEST +#define v1alpha2_structured_resource_handle_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_structured_resource_handle_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_structured_resource_handle.h" +v1alpha2_structured_resource_handle_t* instantiate_v1alpha2_structured_resource_handle(int include_optional); + + + +v1alpha2_structured_resource_handle_t* instantiate_v1alpha2_structured_resource_handle(int include_optional) { + v1alpha2_structured_resource_handle_t* v1alpha2_structured_resource_handle = NULL; + if (include_optional) { + v1alpha2_structured_resource_handle = v1alpha2_structured_resource_handle_create( + "0", + list_createList(), + 0, + 0 + ); + } else { + v1alpha2_structured_resource_handle = v1alpha2_structured_resource_handle_create( + "0", + list_createList(), + 0, + 0 + ); + } + + return v1alpha2_structured_resource_handle; +} + + +#ifdef v1alpha2_structured_resource_handle_MAIN + +void test_v1alpha2_structured_resource_handle(int include_optional) { + v1alpha2_structured_resource_handle_t* v1alpha2_structured_resource_handle_1 = instantiate_v1alpha2_structured_resource_handle(include_optional); + + cJSON* jsonv1alpha2_structured_resource_handle_1 = v1alpha2_structured_resource_handle_convertToJSON(v1alpha2_structured_resource_handle_1); + printf("v1alpha2_structured_resource_handle :\n%s\n", cJSON_Print(jsonv1alpha2_structured_resource_handle_1)); + v1alpha2_structured_resource_handle_t* v1alpha2_structured_resource_handle_2 = v1alpha2_structured_resource_handle_parseFromJSON(jsonv1alpha2_structured_resource_handle_1); + cJSON* jsonv1alpha2_structured_resource_handle_2 = v1alpha2_structured_resource_handle_convertToJSON(v1alpha2_structured_resource_handle_2); + printf("repeating v1alpha2_structured_resource_handle:\n%s\n", cJSON_Print(jsonv1alpha2_structured_resource_handle_2)); +} + +int main() { + test_v1alpha2_structured_resource_handle(1); + test_v1alpha2_structured_resource_handle(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_structured_resource_handle_MAIN +#endif // v1alpha2_structured_resource_handle_TEST diff --git a/kubernetes/unit-test/test_v1alpha2_vendor_parameters.c b/kubernetes/unit-test/test_v1alpha2_vendor_parameters.c new file mode 100644 index 0000000..55fc6a1 --- /dev/null +++ b/kubernetes/unit-test/test_v1alpha2_vendor_parameters.c @@ -0,0 +1,60 @@ +#ifndef v1alpha2_vendor_parameters_TEST +#define v1alpha2_vendor_parameters_TEST + +// the following is to include only the main from the first c file +#ifndef TEST_MAIN +#define TEST_MAIN +#define v1alpha2_vendor_parameters_MAIN +#endif // TEST_MAIN + +#include +#include +#include +#include +#include "../external/cJSON.h" + +#include "../model/v1alpha2_vendor_parameters.h" +v1alpha2_vendor_parameters_t* instantiate_v1alpha2_vendor_parameters(int include_optional); + + + +v1alpha2_vendor_parameters_t* instantiate_v1alpha2_vendor_parameters(int include_optional) { + v1alpha2_vendor_parameters_t* v1alpha2_vendor_parameters = NULL; + if (include_optional) { + v1alpha2_vendor_parameters = v1alpha2_vendor_parameters_create( + "0", + 0 + ); + } else { + v1alpha2_vendor_parameters = v1alpha2_vendor_parameters_create( + "0", + 0 + ); + } + + return v1alpha2_vendor_parameters; +} + + +#ifdef v1alpha2_vendor_parameters_MAIN + +void test_v1alpha2_vendor_parameters(int include_optional) { + v1alpha2_vendor_parameters_t* v1alpha2_vendor_parameters_1 = instantiate_v1alpha2_vendor_parameters(include_optional); + + cJSON* jsonv1alpha2_vendor_parameters_1 = v1alpha2_vendor_parameters_convertToJSON(v1alpha2_vendor_parameters_1); + printf("v1alpha2_vendor_parameters :\n%s\n", cJSON_Print(jsonv1alpha2_vendor_parameters_1)); + v1alpha2_vendor_parameters_t* v1alpha2_vendor_parameters_2 = v1alpha2_vendor_parameters_parseFromJSON(jsonv1alpha2_vendor_parameters_1); + cJSON* jsonv1alpha2_vendor_parameters_2 = v1alpha2_vendor_parameters_convertToJSON(v1alpha2_vendor_parameters_2); + printf("repeating v1alpha2_vendor_parameters:\n%s\n", cJSON_Print(jsonv1alpha2_vendor_parameters_2)); +} + +int main() { + test_v1alpha2_vendor_parameters(1); + test_v1alpha2_vendor_parameters(0); + + printf("Hello world \n"); + return 0; +} + +#endif // v1alpha2_vendor_parameters_MAIN +#endif // v1alpha2_vendor_parameters_TEST diff --git a/settings b/settings index b6ba4b6..b5e676c 100644 --- a/settings +++ b/settings @@ -1,8 +1,8 @@ # Kubernetes branch/tag to get the OpenAPI spec from. -export KUBERNETES_BRANCH="release-1.29" +export KUBERNETES_BRANCH="release-1.30" # client version is not currently used by the code generator. -export CLIENT_VERSION="0.9.0" +export CLIENT_VERSION="0.10.0" # Name of the release package export PACKAGE_NAME="client"